shieldcortex 4.34.0 → 4.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +1 -1
- 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 +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 +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 +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/react-loadable-manifest.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.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 +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/replay/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 -9
- 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 +18 -19
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +18 -19
- 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 +18 -19
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +18 -19
- 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.rsc +18 -18
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +18 -18
- 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 +18 -18
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +18 -18
- 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 +18 -18
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +18 -18
- 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/replay.html +1 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +16 -16
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +16 -16
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.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 +18 -18
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +18 -18
- 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 +18 -18
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +18 -18
- 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 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +22 -25
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +3 -3
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +22 -25
- 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 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +22 -24
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +3 -3
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +22 -24
- 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 +18 -18
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +18 -18
- 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 +22 -20
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +22 -20
- 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 +22 -20
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +22 -20
- 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 +22 -20
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +22 -20
- 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 +22 -20
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +22 -20
- 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 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +20 -19
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +20 -19
- 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 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +20 -22
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +20 -22
- 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 +18 -18
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +18 -18
- 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 +18 -19
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +18 -19
- 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 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +20 -22
- 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 +10 -9
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +20 -22
- 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/9f1d4_lucide-react_dist_esm_icons_47ec4567._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__7d500b5a._.js +1 -9
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__bea9887b._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_45d60d74._.js → dashboard_01e81e69._.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_14d63e36._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1b261cd5._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1b3af814._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_44a1539a._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_4835c323._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_599483f2._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ca514a1._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a6877bbc._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_861871f9._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_overview_page_tsx_8c105626._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_de7ac4f9._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +2 -2
- 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 -9
- 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/1600063be806f47c.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/61aaa0c660c32b96.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/69074f4a9b09c31d.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/881477f5d01c1d9b.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/8eabb856fd0e50b7.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/98ae91e0a6f5d317.css +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/a95dbcc1842ad9d7.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{4d0b86f6afedd8b5.js → b8eceefe44227149.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{f86a7ba98ba185c3.js → cfbc41857d998b74.js} +6 -6
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/d2837977142371d5.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/de9f5ba8bc67d4d9.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/e8884e7f3b85fd0b.js +1 -0
- package/dashboard/.next/standalone/dashboard/node_modules/source-map/package.json +73 -0
- package/dashboard/.next/standalone/dashboard/node_modules/source-map-support/package.json +31 -0
- package/dashboard/.next/standalone/dashboard/package.json +8 -6
- package/package.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_lucide-react_dist_esm_icons_3a8e61d9._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__7f43774d._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11e120e8._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2373e047._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_283c47c0._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_30ecb37e._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ccb6514._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_6999a855._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c33b336f._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_44a9f72c._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_d191b6dc._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/0fa2c109e0d6d832.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1aba5ddfecdd0947.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/349dace3a1c9af01.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/3b671e7effc074d1.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/6aba18b7aac42ccd.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/75769fa28c7a2e99.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/8d4a0f601450b091.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/aee9601911b790ca.css +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/bcfaf98940462e7d.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/c55c1a1a956d2aff.js +0 -1
- /package/dashboard/.next/standalone/dashboard/.next/static/{bUb5MH6iktj_Ue6clRY9Y → h2qG7AvaXDfMKQrI-bK4V}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{bUb5MH6iktj_Ue6clRY9Y → h2qG7AvaXDfMKQrI-bK4V}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{bUb5MH6iktj_Ue6clRY9Y → h2qG7AvaXDfMKQrI-bK4V}/_ssgManifest.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/buffer-from/index.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/buffer-from/package.json +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/array-set.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/base64-vlq.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/base64.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/binary-search.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/mapping-list.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/quick-sort.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/source-map-consumer.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/source-map-generator.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/source-node.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/util.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/source-map.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/LICENSE.md +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/README.md +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/browser-source-map-support.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/register.js +0 -0
- /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/source-map-support.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(a){return(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?.target&&b.set("target",a.target),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})}function E(){let a=(0,B.useQueryClient)();return(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:()=>{a.invalidateQueries({queryKey:["xray-findings"]}),a.invalidateQueries({queryKey:["xray-findings-stats"]})}})}function F(){let a=(0,B.useQueryClient)();return(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:()=>{a.invalidateQueries({queryKey:["xray-findings"]}),a.invalidateQueries({queryKey:["xray-findings-stats"]})}})}function G({findingId:a,status:d,hasFile:e,compact:g=!1}){let h,[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[o,p]=(0,c.useState)(!1),q=E(),s=F(),t=(h=(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:()=>{h.invalidateQueries({queryKey:["xray-findings"]}),h.invalidateQueries({queryKey:["xray-findings-stats"]})}})),u=b=>{switch(b){case"reviewed":q.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":q.mutate({id:a,status:"ignored",note:k},{onSuccess:()=>{m.toast.info("Finding ignored — removed from active list"),j(!1),l(""),p(!0)},onError:a=>m.toast.error(`Failed to ignore: ${a.message}`)});break;case"resolved":q.mutate({id:a,status:"resolved",note:k},{onSuccess:()=>{m.toast.success("Finding resolved — removed from active list"),j(!1),l(""),p(!0)},onError:a=>m.toast.error(`Failed to resolve: ${a.message}`)});break;case"quarantine":s.mutate({id:a,note:k},{onSuccess:a=>{m.toast.warning(a.moved?"File quarantined and moved":"Marked quarantined (file not found)"),p(!0)},onError:a=>m.toast.error(`Quarantine failed: ${a.message}`)});break;case"delete":t.mutate(a,{onSuccess:()=>{m.toast.success("Finding deleted"),p(!0)},onError:a=>m.toast.error(`Failed to delete: ${a.message}`)})}};if(o)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 z=g?"sm":"md",D=q.isPending||s.isPending||t.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:z,onClick:()=>u("reviewed"),disabled:D,children:[(0,b.jsx)(f.Eye,{size:12})," Mark reviewed"]}),(0,b.jsxs)(r.Button,{variant:"cyan",size:z,onClick:()=>j(!i),disabled:D,children:[(0,b.jsx)(v.Check,{size:12})," Resolve"]}),(0,b.jsxs)(r.Button,{variant:"ghost",size:z,onClick:()=>u("ignored"),disabled:D,children:[(0,b.jsx)(w,{size:12})," Safe to ignore"]}),e&&(0,b.jsxs)(r.Button,{variant:"coral",size:z,onClick:()=>u("quarantine"),disabled:D,children:[(0,b.jsx)(x.Shield,{size:12})," Quarantine file"]}),(0,b.jsx)(r.Button,{variant:"ghost",size:z,onClick:()=>u("delete"),disabled:D,children:(0,b.jsx)(y.Trash2,{size:12})})]}),i&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{value:k,onChange:a=>l(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&&u("resolved")}}),(0,b.jsx)(r.Button,{variant:"cyan",size:"sm",onClick:()=>u("resolved"),disabled:D,children:"Done"})]})]})}var H=a.i(25605),I=a.i(79155),J=a.i(22524);let K=(0,g.default)("shield-x",[["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:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);var L=a.i(14126),M=a.i(49948),N=a.i(91321),O=a.i(68760);function P(a,b,c,d){return`${a}|${b}|${c??""}|${d??""}`}function Q({finding:a,target:d}){let e=(0,N.useLocalAiExplain)(),f=E(),g=F(),[h,i]=(0,c.useState)(new Set),j=a=>i(b=>{let c=new Set(b);return c.add(a),c}),k=!a.id&&!!d&&!!e.data,l=D(k?{target:d,limit:200}:void 0),n=(()=>{if(a.id)return a.id;if(!l.data?.findings)return;let b=P(a.category,a.title,a.file,a.line),c=l.data.findings.find(a=>P(a.category,a.title,a.file,a.line)===b);return c?.id})();return(0,b.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,b.jsxs)(r.Button,{variant:"outline",size:"sm",onClick:()=>{e.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:e.isPending,pulse:e.isPending,children:[(0,b.jsx)(L.Sparkles,{size:13}),e.isPending?"Explaining":"Explain"]}),e.data?.explanation&&(0,b.jsx)(M.LocalAiExplanationPanel,{explanation:e.data.explanation,actions:(()=>{let c=[];if(a.file){let d=(0,O.buildEditorUrl)(a.file,a.line);c.push({key:"open",label:"Open in editor",icon:(0,b.jsx)(H.ExternalLink,{size:13}),variant:"outline",onClick:()=>{d&&(window.location.href=d)}})}if(!n)return k&&l.isLoading&&c.push({key:"lookup",label:"Loading actions",variant:"outline",disabled:!0,pending:!0,onClick:()=>void 0}),c;let d=f.isPending||g.isPending,e=h.has("reviewed");c.push({key:"reviewed",label:e?"Reviewed":"Mark reviewed",icon:e?(0,b.jsx)(v.Check,{size:13}):(0,b.jsx)(J.ShieldCheck,{size:13}),variant:e?"cyan":"outline",pending:f.isPending&&f.variables?.status==="reviewed",disabled:d||e,onClick:()=>{f.mutate({id:n,status:"reviewed"},{onSuccess:()=>{j("reviewed"),m.toast.success("Marked as reviewed")},onError:a=>m.toast.error(a instanceof Error?a.message:"Failed to mark reviewed")})}});let i=h.has("dismiss");c.push({key:"dismiss",label:i?"Dismissed":"Dismiss",icon:i?(0,b.jsx)(v.Check,{size:13}):(0,b.jsx)(K,{size:13}),variant:i?"cyan":"ghost",pending:f.isPending&&f.variables?.status==="ignored",disabled:d||i,onClick:()=>{f.mutate({id:n,status:"ignored"},{onSuccess:()=>{j("dismiss"),m.toast.success("Finding dismissed")},onError:a=>m.toast.error(a instanceof Error?a.message:"Failed to dismiss")})}});let o=h.has("quarantine");return c.push({key:"quarantine",label:o?"Quarantined":"Quarantine file",icon:o?(0,b.jsx)(v.Check,{size:13}):(0,b.jsx)(I.ShieldAlert,{size:13}),variant:o?"cyan":"coral",pending:g.isPending,disabled:d||o,onClick:()=>{g.mutate({id:n},{onSuccess:()=>{j("quarantine"),m.toast.success("File quarantined")},onError:a=>m.toast.error(a instanceof Error?a.message:"Failed to quarantine")})}}),c})()}),e.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:e.error instanceof Error?e.error.message:"Local explanation failed"})]})}var R=a.i(26804);function S(a){return a?new Date(a).toLocaleString():"—"}function T(){let[a,g]=(0,c.useState)("scanner"),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(!1),[A,B]=(0,c.useState)(null),[E,F]=(0,c.useState)("ALL"),[H,I]=(0,c.useState)("all"),[J,K]=(0,c.useState)("all"),[L,M]=(0,c.useState)(""),[N,O]=(0,c.useState)("all"),[P,T]=(0,c.useState)("all"),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("new"),{data:$}=(0,R.useXRayHistory)({risk:E,targetType:H,deep:J,search:L}),{data:_}=(0,R.useXRayActivity)(8,{kind:N}),{data:aa}=(0,R.useXRayWatchSessions)(8,{state:P}),{data:ab}=(0,R.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}=D({status:"all"===Y?void 0:Y}),ae=(0,c.useMemo)(()=>$?.entries??[],[$?.entries]),af=_?.entries??[],ag=aa?.entries??[],ah=(0,R.useXRayScan)(),ai=(0,R.usePickXRayTarget)(),aj=A??(ae.length>0?ae[0].id:null),ak=(0,R.useXRayHistoryEntry)(aj),{data:al}=(0,R.useActiveWatchers)(),am=(0,R.useStartWatch)(),an=(0,R.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:a,onTabChange:a=>g(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"===a&&(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(),v.trim()&&ah.mutate({target:v.trim(),deep:x})},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:v,onChange:a=>w(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&&w(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&&w(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:x,onChange:a=>y(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||!v.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:S(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)(Q,{finding:{...a,id:aq[c]?.id,status:aq[c]?.status},target:au.target}),aq[c]&&(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(G,{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"===a&&(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:L,onChange:a=>M(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:E,onChange:a=>F(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: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 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:()=>K(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${J===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:()=>{B(a.id),w(a.target),y(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:S(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)(Q,{finding:a,target:au.target})]},`${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"===a&&(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 ${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: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 ",S(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"===a&&(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:()=>O(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${N===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"===a&&(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)(Q,{finding:a}),(0,b.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:S(a.detectedAt)}),(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(G,{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",()=>T],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(76614),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(a){return(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?.target&&b.set("target",a.target),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})}function E(){let a=(0,B.useQueryClient)();return(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:()=>{a.invalidateQueries({queryKey:["xray-findings"]}),a.invalidateQueries({queryKey:["xray-findings-stats"]})}})}function F(){let a=(0,B.useQueryClient)();return(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:()=>{a.invalidateQueries({queryKey:["xray-findings"]}),a.invalidateQueries({queryKey:["xray-findings-stats"]})}})}function G({findingId:a,status:d,hasFile:e,compact:g=!1}){let h,[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[o,p]=(0,c.useState)(!1),q=E(),s=F(),t=(h=(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:()=>{h.invalidateQueries({queryKey:["xray-findings"]}),h.invalidateQueries({queryKey:["xray-findings-stats"]})}})),u=b=>{switch(b){case"reviewed":q.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":q.mutate({id:a,status:"ignored",note:k},{onSuccess:()=>{m.toast.info("Finding ignored — removed from active list"),j(!1),l(""),p(!0)},onError:a=>m.toast.error(`Failed to ignore: ${a.message}`)});break;case"resolved":q.mutate({id:a,status:"resolved",note:k},{onSuccess:()=>{m.toast.success("Finding resolved — removed from active list"),j(!1),l(""),p(!0)},onError:a=>m.toast.error(`Failed to resolve: ${a.message}`)});break;case"quarantine":s.mutate({id:a,note:k},{onSuccess:a=>{m.toast.warning(a.moved?"File quarantined and moved":"Marked quarantined (file not found)"),p(!0)},onError:a=>m.toast.error(`Quarantine failed: ${a.message}`)});break;case"delete":t.mutate(a,{onSuccess:()=>{m.toast.success("Finding deleted"),p(!0)},onError:a=>m.toast.error(`Failed to delete: ${a.message}`)})}};if(o)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 z=g?"sm":"md",D=q.isPending||s.isPending||t.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:z,onClick:()=>u("reviewed"),disabled:D,children:[(0,b.jsx)(f.Eye,{size:12})," Mark reviewed"]}),(0,b.jsxs)(r.Button,{variant:"cyan",size:z,onClick:()=>j(!i),disabled:D,children:[(0,b.jsx)(v.Check,{size:12})," Resolve"]}),(0,b.jsxs)(r.Button,{variant:"ghost",size:z,onClick:()=>u("ignored"),disabled:D,children:[(0,b.jsx)(w,{size:12})," Safe to ignore"]}),e&&(0,b.jsxs)(r.Button,{variant:"coral",size:z,onClick:()=>u("quarantine"),disabled:D,children:[(0,b.jsx)(x.Shield,{size:12})," Quarantine file"]}),(0,b.jsx)(r.Button,{variant:"ghost",size:z,onClick:()=>u("delete"),disabled:D,children:(0,b.jsx)(y.Trash2,{size:12})})]}),i&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{value:k,onChange:a=>l(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&&u("resolved")}}),(0,b.jsx)(r.Button,{variant:"cyan",size:"sm",onClick:()=>u("resolved"),disabled:D,children:"Done"})]})]})}var H=a.i(25605),I=a.i(79155),J=a.i(22524);let K=(0,g.default)("shield-x",[["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:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);var L=a.i(14126),M=a.i(49948),N=a.i(91321),O=a.i(68760);function P(a,b,c,d){return`${a}|${b}|${c??""}|${d??""}`}function Q({finding:a,target:d}){let e=(0,N.useLocalAiExplain)(),f=E(),g=F(),[h,i]=(0,c.useState)(new Set),j=a=>i(b=>{let c=new Set(b);return c.add(a),c}),k=!a.id&&!!d&&!!e.data,l=D(k?{target:d,limit:200}:void 0),n=(()=>{if(a.id)return a.id;if(!l.data?.findings)return;let b=P(a.category,a.title,a.file,a.line),c=l.data.findings.find(a=>P(a.category,a.title,a.file,a.line)===b);return c?.id})();return(0,b.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,b.jsxs)(r.Button,{variant:"outline",size:"sm",onClick:()=>{e.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:e.isPending,pulse:e.isPending,children:[(0,b.jsx)(L.Sparkles,{size:13}),e.isPending?"Explaining":"Explain"]}),e.data?.explanation&&(0,b.jsx)(M.LocalAiExplanationPanel,{explanation:e.data.explanation,actions:(()=>{let c=[];if(a.file){let d=(0,O.buildEditorUrl)(a.file,a.line);c.push({key:"open",label:"Open in editor",icon:(0,b.jsx)(H.ExternalLink,{size:13}),variant:"outline",onClick:()=>{d&&(window.location.href=d)}})}if(!n)return k&&l.isLoading&&c.push({key:"lookup",label:"Loading actions",variant:"outline",disabled:!0,pending:!0,onClick:()=>void 0}),c;let d=f.isPending||g.isPending,e=h.has("reviewed");c.push({key:"reviewed",label:e?"Reviewed":"Mark reviewed",icon:e?(0,b.jsx)(v.Check,{size:13}):(0,b.jsx)(J.ShieldCheck,{size:13}),variant:e?"cyan":"outline",pending:f.isPending&&f.variables?.status==="reviewed",disabled:d||e,onClick:()=>{f.mutate({id:n,status:"reviewed"},{onSuccess:()=>{j("reviewed"),m.toast.success("Marked as reviewed")},onError:a=>m.toast.error(a instanceof Error?a.message:"Failed to mark reviewed")})}});let i=h.has("dismiss");c.push({key:"dismiss",label:i?"Dismissed":"Dismiss",icon:i?(0,b.jsx)(v.Check,{size:13}):(0,b.jsx)(K,{size:13}),variant:i?"cyan":"ghost",pending:f.isPending&&f.variables?.status==="ignored",disabled:d||i,onClick:()=>{f.mutate({id:n,status:"ignored"},{onSuccess:()=>{j("dismiss"),m.toast.success("Finding dismissed")},onError:a=>m.toast.error(a instanceof Error?a.message:"Failed to dismiss")})}});let o=h.has("quarantine");return c.push({key:"quarantine",label:o?"Quarantined":"Quarantine file",icon:o?(0,b.jsx)(v.Check,{size:13}):(0,b.jsx)(I.ShieldAlert,{size:13}),variant:o?"cyan":"coral",pending:g.isPending,disabled:d||o,onClick:()=>{g.mutate({id:n},{onSuccess:()=>{j("quarantine"),m.toast.success("File quarantined")},onError:a=>m.toast.error(a instanceof Error?a.message:"Failed to quarantine")})}}),c})()}),e.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:e.error instanceof Error?e.error.message:"Local explanation failed"})]})}var R=a.i(26804);function S(a){return a?new Date(a).toLocaleString():"—"}function T(){let[a,g]=(0,c.useState)("scanner"),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(!1),[A,B]=(0,c.useState)(null),[E,F]=(0,c.useState)("ALL"),[H,I]=(0,c.useState)("all"),[J,K]=(0,c.useState)("all"),[L,M]=(0,c.useState)(""),[N,O]=(0,c.useState)("all"),[P,T]=(0,c.useState)("all"),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("new"),{data:$}=(0,R.useXRayHistory)({risk:E,targetType:H,deep:J,search:L}),{data:_}=(0,R.useXRayActivity)(8,{kind:N}),{data:aa}=(0,R.useXRayWatchSessions)(8,{state:P}),{data:ab}=(0,R.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}=D({status:"all"===Y?void 0:Y}),ae=(0,c.useMemo)(()=>$?.entries??[],[$?.entries]),af=_?.entries??[],ag=aa?.entries??[],ah=(0,R.useXRayScan)(),ai=(0,R.usePickXRayTarget)(),aj=A??(ae.length>0?ae[0].id:null),ak=(0,R.useXRayHistoryEntry)(aj),{data:al}=(0,R.useActiveWatchers)(),am=(0,R.useStartWatch)(),an=(0,R.useStopWatch)(),ao=al?.watchers??[],ap=ah.data?.result,aq=ah.data?.persistedFindings??[],ar=ah.error,as=ar instanceof n.FeatureLockedError;(0,o.useWebSocketEvent)(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:a,onTabChange:a=>g(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"===a&&(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(),v.trim()&&ah.mutate({target:v.trim(),deep:x})},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:v,onChange:a=>w(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&&w(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&&w(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:x,onChange:a=>y(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||!v.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:S(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)(Q,{finding:{...a,id:aq[c]?.id,status:aq[c]?.status},target:au.target}),aq[c]&&(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(G,{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"===a&&(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:L,onChange:a=>M(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:E,onChange:a=>F(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: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 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:()=>K(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${J===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:()=>{B(a.id),w(a.target),y(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:S(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)(Q,{finding:a,target:au.target})]},`${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"===a&&(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 ${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: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 ",S(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"===a&&(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:()=>O(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${N===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"===a&&(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)(Q,{finding:a}),(0,b.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:S(a.detectedAt)}),(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(G,{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",()=>T],89418)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js.map
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
try {
|
|
3
|
-
var t = localStorage.getItem('sc-theme');
|
|
4
|
-
if (t !== 'glass' && t !== 'terminal') t = 'terminal';
|
|
5
|
-
document.documentElement.dataset.theme = t;
|
|
6
|
-
} catch (e) {
|
|
7
|
-
document.documentElement.dataset.theme = 'terminal';
|
|
8
|
-
}
|
|
9
|
-
</script><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/34d933785a17edf3.css\",\"style\"]\n:HL[\"/_next/static/chunks/aee9601911b790ca.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bUb5MH6iktj_Ue6clRY9Y\",\"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/34d933785a17edf3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/aee9601911b790ca.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\",\"data-theme\":\"terminal\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\ntry {\\n var t = localStorage.getItem('sc-theme');\\n if (t !== 'glass' \u0026\u0026 t !== 'terminal') t = 'terminal';\\n document.documentElement.dataset.theme = t;\\n} catch (e) {\\n document.documentElement.dataset.theme = 'terminal';\\n}\\n\"}}]}],[\"$\",\"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:1: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:1: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:1: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:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"ShieldCortex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review\"}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--h2qG7AvaXDfMKQrI_bK4V--><html lang="en" class="dark" data-theme="glass"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/34d933785a17edf3.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/98ae91e0a6f5d317.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/d878b929b21636c4.js"/><script src="/_next/static/chunks/f70f563804550a9c.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-768a6a8b9db952e0.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/34d933785a17edf3.css\",\"style\"]\n:HL[\"/_next/static/chunks/98ae91e0a6f5d317.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"h2qG7AvaXDfMKQrI-bK4V\",\"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/34d933785a17edf3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/98ae91e0a6f5d317.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\",\"data-theme\":\"glass\",\"suppressHydrationWarning\":true,\"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><!--h2qG7AvaXDfMKQrI_bK4V--><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/f70f563804550a9c.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-768a6a8b9db952e0.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\":\"h2qG7AvaXDfMKQrI-bK4V\",\"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\": \"UR77WKgFS7Lveo5ZFOHiQuZm6gy283SUIJyVr42Y21w=\"\n}"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,27918,e=>{"use strict";var t=e.i(27493),a=e.i(4),s=e.i(45434),r=e.i(36062),i=e.i(71259),n=e.i(24929);let c=(0,n.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"}]]),l=(0,n.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 d=e.i(66949);let o=(0,n.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 x=e.i(76344),m=e.i(48615),v=e.i(88969),u=e.i(35372),h=e.i(16467),p=e.i(95659),g=e.i(81523),y=e.i(40950),f=e.i(46194);function j({score:e,size:a=160,label:s}){let r=2*Math.PI*42,i=e/100*r,n=e<=50?"var(--sc-coral)":e<=75?"var(--sc-amber)":"var(--sc-cyan)",c=e<=50?"var(--sc-glow-coral)":e<=75?"rgba(245, 158, 11, 0.15)":"var(--sc-glow-cyan)";return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative",style:{width:a,height:a},children:[(0,t.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",style:{filter:`drop-shadow(0 0 12px ${c})`},children:[(0,t.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"7"}),(0,t.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:n,strokeWidth:"7",strokeDasharray:`${i} ${r}`,strokeLinecap:"round",className:"transition-all duration-1000 ease-out"})]}),(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,t.jsx)("span",{className:"text-3xl font-bold",style:{color:n},children:e}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--sc-text-muted)]",children:"trust"})]})]}),s&&(0,t.jsx)("span",{className:"text-xs font-medium text-[var(--sc-text-secondary)]",children:s})]})}var b=e.i(16511);let N=(0,n.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 k=e.i(27528),w=e.i(77744),S=e.i(22534),C=e.i(45688),B=e.i(71921),E=e.i(1235);let F=S.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function $(e){return(0,C.useQuery)({queryKey:["xray-findings",e],queryFn:async()=>{let t=new URLSearchParams;e?.status&&t.set("status",e.status),e?.severity&&t.set("severity",e.severity),e?.target&&t.set("target",e.target),e?.limit&&t.set("limit",String(e.limit));let a=t.toString()?`?${t}`:"",s=await (0,v.gatedFetch)(`${F}/api/xray/findings${a}`);if(!s.ok)throw Error(await (0,v.readApiError)(s,"Failed to fetch findings"));return s.json()},refetchInterval:15e3})}function z(){let e=(0,E.useQueryClient)();return(0,B.useMutation)({mutationFn:async({id:e,status:t,note:a})=>{let s=await (0,v.gatedFetch)(`${F}/api/xray/findings/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t,note:a})});if(!s.ok)throw Error(await (0,v.readApiError)(s,"Failed to update finding"));return s.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["xray-findings"]}),e.invalidateQueries({queryKey:["xray-findings-stats"]})}})}function A(){let e=(0,E.useQueryClient)();return(0,B.useMutation)({mutationFn:async({id:e,note:t})=>{let a=await (0,v.gatedFetch)(`${F}/api/xray/findings/${e}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({note:t})});if(!a.ok)throw Error(await (0,v.readApiError)(a,"Failed to quarantine file"));return a.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["xray-findings"]}),e.invalidateQueries({queryKey:["xray-findings-stats"]})}})}function R({findingId:e,status:s,hasFile:r,compact:n=!1}){let c,[l,d]=(0,a.useState)(!1),[o,x]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),p=z(),y=A(),f=(c=(0,E.useQueryClient)(),(0,B.useMutation)({mutationFn:async e=>{let t=await (0,v.gatedFetch)(`${F}/api/xray/findings/${e}`,{method:"DELETE"});if(!t.ok)throw Error(await (0,v.readApiError)(t,"Failed to delete finding"));return t.json()},onSuccess:()=>{c.invalidateQueries({queryKey:["xray-findings"]}),c.invalidateQueries({queryKey:["xray-findings-stats"]})}})),j=t=>{switch(t){case"reviewed":p.mutate({id:e,status:"reviewed"},{onSuccess:()=>m.toast.success("Marked as reviewed"),onError:e=>m.toast.error(`Failed to update: ${e.message}`)});break;case"ignored":p.mutate({id:e,status:"ignored",note:o},{onSuccess:()=>{m.toast.info("Finding ignored — removed from active list"),d(!1),x(""),h(!0)},onError:e=>m.toast.error(`Failed to ignore: ${e.message}`)});break;case"resolved":p.mutate({id:e,status:"resolved",note:o},{onSuccess:()=>{m.toast.success("Finding resolved — removed from active list"),d(!1),x(""),h(!0)},onError:e=>m.toast.error(`Failed to resolve: ${e.message}`)});break;case"quarantine":y.mutate({id:e,note:o},{onSuccess:e=>{m.toast.warning(e.moved?"File quarantined and moved":"Marked quarantined (file not found)"),h(!0)},onError:e=>m.toast.error(`Quarantine failed: ${e.message}`)});break;case"delete":f.mutate(e,{onSuccess:()=>{m.toast.success("Finding deleted"),h(!0)},onError:e=>m.toast.error(`Failed to delete: ${e.message}`)})}};if(u)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)] italic animate-pulse",children:[(0,t.jsx)(b.Check,{size:12})," Done — removing from list..."]});if("resolved"===s)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)]",children:[(0,t.jsx)(b.Check,{size:12})," Resolved"]});if("quarantined"===s)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-amber)]",children:[(0,t.jsx)(k.Shield,{size:12})," Quarantined"]});if("ignored"===s)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-text-muted)]",children:[(0,t.jsx)(N,{size:12})," Ignored"]});let S=n?"sm":"md",C=p.isPending||y.isPending||f.isPending;return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:["new"===s&&(0,t.jsxs)(g.Button,{variant:"ghost",size:S,onClick:()=>j("reviewed"),disabled:C,children:[(0,t.jsx)(i.Eye,{size:12})," Mark reviewed"]}),(0,t.jsxs)(g.Button,{variant:"cyan",size:S,onClick:()=>d(!l),disabled:C,children:[(0,t.jsx)(b.Check,{size:12})," Resolve"]}),(0,t.jsxs)(g.Button,{variant:"ghost",size:S,onClick:()=>j("ignored"),disabled:C,children:[(0,t.jsx)(N,{size:12})," Safe to ignore"]}),r&&(0,t.jsxs)(g.Button,{variant:"coral",size:S,onClick:()=>j("quarantine"),disabled:C,children:[(0,t.jsx)(k.Shield,{size:12})," Quarantine file"]}),(0,t.jsx)(g.Button,{variant:"ghost",size:S,onClick:()=>j("delete"),disabled:C,children:(0,t.jsx)(w.Trash2,{size:12})})]}),l&&(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{value:o,onChange:e=>x(e.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:e=>{"Enter"===e.key&&j("resolved")}}),(0,t.jsx)(g.Button,{variant:"cyan",size:"sm",onClick:()=>j("resolved"),disabled:C,children:"Done"})]})]})}var P=e.i(45256),L=e.i(51069),M=e.i(44758);let q=(0,n.default)("shield-x",[["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:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);var D=e.i(13808),W=e.i(76624),T=e.i(23457),G=e.i(44250);function I(e,t,a,s){return`${e}|${t}|${a??""}|${s??""}`}function Q({finding:e,target:s}){let r=(0,T.useLocalAiExplain)(),i=z(),n=A(),[c,l]=(0,a.useState)(new Set),d=e=>l(t=>{let a=new Set(t);return a.add(e),a}),o=!e.id&&!!s&&!!r.data,x=$(o?{target:s,limit:200}:void 0),v=(()=>{if(e.id)return e.id;if(!x.data?.findings)return;let t=I(e.category,e.title,e.file,e.line),a=x.data.findings.find(e=>I(e.category,e.title,e.file,e.line)===t);return a?.id})();return(0,t.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,t.jsxs)(g.Button,{variant:"outline",size:"sm",onClick:()=>{r.mutate({kind:"xray_finding",title:e.title,content:[`Title: ${e.title}`,`Description: ${e.description}`,e.file?`File: ${e.line?`${e.file}:${e.line}`:e.file}`:"",e.evidence?`Evidence: ${e.evidence}`:"",e.guidance?.whatItMeans?`Scanner meaning: ${e.guidance.whatItMeans}`:"",e.guidance?.whatToDo?`Scanner guidance: ${e.guidance.whatToDo}`:"",e.guidance?.falsePositiveNote?`False positive note: ${e.guidance.falsePositiveNote}`:""].filter(Boolean).join("\n"),source:e.file?`xray:${e.file}`:"xray",signals:[e.severity,e.category,e.status??"",e.guidance?.urgency??"",e.systemFile?"system-file":""].filter(Boolean),metadata:{id:e.id,file:e.file,line:e.line,severity:e.severity,category:e.category,status:e.status,detectedAt:e.detectedAt,systemFile:e.systemFile,guidance:e.guidance}},{onSuccess:e=>{m.toast.success(e.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:e=>m.toast.error(e instanceof Error?e.message:"Local explanation failed")})},disabled:r.isPending,pulse:r.isPending,children:[(0,t.jsx)(D.Sparkles,{size:13}),r.isPending?"Explaining":"Explain"]}),r.data?.explanation&&(0,t.jsx)(W.LocalAiExplanationPanel,{explanation:r.data.explanation,actions:(()=>{let a=[];if(e.file){let s=(0,G.buildEditorUrl)(e.file,e.line);a.push({key:"open",label:"Open in editor",icon:(0,t.jsx)(P.ExternalLink,{size:13}),variant:"outline",onClick:()=>{s&&(window.location.href=s)}})}if(!v)return o&&x.isLoading&&a.push({key:"lookup",label:"Loading actions",variant:"outline",disabled:!0,pending:!0,onClick:()=>void 0}),a;let s=i.isPending||n.isPending,r=c.has("reviewed");a.push({key:"reviewed",label:r?"Reviewed":"Mark reviewed",icon:r?(0,t.jsx)(b.Check,{size:13}):(0,t.jsx)(M.ShieldCheck,{size:13}),variant:r?"cyan":"outline",pending:i.isPending&&i.variables?.status==="reviewed",disabled:s||r,onClick:()=>{i.mutate({id:v,status:"reviewed"},{onSuccess:()=>{d("reviewed"),m.toast.success("Marked as reviewed")},onError:e=>m.toast.error(e instanceof Error?e.message:"Failed to mark reviewed")})}});let l=c.has("dismiss");a.push({key:"dismiss",label:l?"Dismissed":"Dismiss",icon:l?(0,t.jsx)(b.Check,{size:13}):(0,t.jsx)(q,{size:13}),variant:l?"cyan":"ghost",pending:i.isPending&&i.variables?.status==="ignored",disabled:s||l,onClick:()=>{i.mutate({id:v,status:"ignored"},{onSuccess:()=>{d("dismiss"),m.toast.success("Finding dismissed")},onError:e=>m.toast.error(e instanceof Error?e.message:"Failed to dismiss")})}});let u=c.has("quarantine");return a.push({key:"quarantine",label:u?"Quarantined":"Quarantine file",icon:u?(0,t.jsx)(b.Check,{size:13}):(0,t.jsx)(L.ShieldAlert,{size:13}),variant:u?"cyan":"coral",pending:n.isPending,disabled:s||u,onClick:()=>{n.mutate({id:v},{onSuccess:()=>{d("quarantine"),m.toast.success("File quarantined")},onError:e=>m.toast.error(e instanceof Error?e.message:"Failed to quarantine")})}}),a})()}),r.error&&(0,t.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:r.error instanceof Error?r.error.message:"Local explanation failed"})]})}var H=e.i(31309);function X(e){return e?new Date(e).toLocaleString():"—"}function K(){let[e,n]=(0,a.useState)("scanner"),[b,N]=(0,a.useState)(""),[k,w]=(0,a.useState)(!1),[S,B]=(0,a.useState)(null),[E,z]=(0,a.useState)("ALL"),[A,P]=(0,a.useState)("all"),[L,M]=(0,a.useState)("all"),[q,D]=(0,a.useState)(""),[W,T]=(0,a.useState)("all"),[G,I]=(0,a.useState)("all"),[K,O]=(0,a.useState)(""),[V,U]=(0,a.useState)(!1),[_,J]=(0,a.useState)("new"),{data:Y}=(0,H.useXRayHistory)({risk:E,targetType:A,deep:L,search:q}),{data:Z}=(0,H.useXRayActivity)(8,{kind:W}),{data:ee}=(0,H.useXRayWatchSessions)(8,{state:G}),{data:et}=(0,H.useXRayStatus)(),{data:ea}=(0,C.useQuery)({queryKey:["xray-findings-stats"],queryFn:async()=>{let e=await (0,v.gatedFetch)(`${F}/api/xray/findings/stats`);if(!e.ok)throw Error(await (0,v.readApiError)(e,"Failed to fetch finding stats"));return e.json()},refetchInterval:15e3}),{data:es}=$({status:"all"===_?void 0:_}),er=(0,a.useMemo)(()=>Y?.entries??[],[Y?.entries]),ei=Z?.entries??[],en=ee?.entries??[],ec=(0,H.useXRayScan)(),el=(0,H.usePickXRayTarget)(),ed=S??(er.length>0?er[0].id:null),eo=(0,H.useXRayHistoryEntry)(ed),{data:ex}=(0,H.useActiveWatchers)(),em=(0,H.useStartWatch)(),ev=(0,H.useStopWatch)(),eu=ex?.watchers??[],eh=ec.data?.result,ep=ec.data?.persistedFindings??[],eg=ec.error,ey=eg instanceof v.FeatureLockedError;(0,u.useWebSocketEvent)(e=>{if("xray_detection"===e.type){let t=e.data;m.toast.warning(t.summary||"X-Ray detection",{description:`Risk: ${t.riskLevel||"unknown"}`,duration:8e3})}});let ef=eo.data?.entry??er.find(e=>e.id===ed)??null,ej=eh??ef?.result??null,eb=(0,a.useMemo)(()=>({total:er.length,avgScore:er.length?Math.round(er.reduce((e,t)=>e+t.trustScore,0)/er.length):null}),[er]),eN=et?.capabilities,ek=et?.summary,ew=[{id:"scanner",label:"Scanner",icon:(0,t.jsx)(x.ScanSearch,{size:14})},{id:"history",label:"History",count:eb.total},{id:"watch",label:"Watch",count:ek?.activeWatchRoots??0},{id:"activity",label:"Activity"},{id:"findings",label:"Findings",count:ea?.new??0}];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)(y.PageHeader,{eyebrow:"Supply Chain Security",title:"X-Ray Scanner",subtitle:"Scan packages, files, and directories for hidden risk signals.",tabs:ew,activeTab:e,onTabChange:e=>n(e),actions:(0,t.jsx)("div",{className:"flex items-center gap-3",children:(0,t.jsxs)(p.Badge,{variant:eN?.deepScan?"cyan":"muted",dot:!0,children:["Deep scan ",eN?.deepScan?"enabled":"gated"]})})}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(f.StatCard,{label:"Total Scans",value:ek?.scans??0,icon:x.ScanSearch,accent:"cyan"}),(0,t.jsx)(f.StatCard,{label:"High Risk",value:ek?.highRiskScans??0,icon:s.Activity,accent:"coral"}),(0,t.jsx)(f.StatCard,{label:"Watch Roots",value:ek?.activeWatchRoots??0,icon:i.Eye,accent:"cyan"}),(0,t.jsx)(f.StatCard,{label:"Avg Trust",value:eb.avgScore??"—",icon:c,accent:eb.avgScore&&eb.avgScore>=70?"cyan":"amber"})]}),"scanner"===e&&(0,t.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1.2fr_0.8fr]",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-6",children:[(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),b.trim()&&ec.mutate({target:b.trim(),deep:k})},children:[(0,t.jsx)("label",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"What do you want to scan?"}),(0,t.jsx)("input",{value:b,onChange:e=>N(e.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,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>el.mutate("file",{onSuccess:e=>{e.path&&N(e.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,t.jsx)(c,{size:14})," Browse file"]}),(0,t.jsxs)("button",{type:"button",onClick:()=>el.mutate("folder",{onSuccess:e=>{e.path&&N(e.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,t.jsx)(l,{size:14})," Browse folder"]}),(0,t.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,t.jsx)("input",{type:"checkbox",checked:k,onChange:e=>w(e.target.checked),className:"h-4 w-4 rounded border-[var(--sc-border)] accent-[var(--sc-cyan)]"}),"Deep scan",!eN?.deepScan&&(0,t.jsx)(d.Lock,{size:12,className:"text-[var(--sc-coral)]"})]}),(0,t.jsxs)(g.Button,{type:"submit",variant:"coral",glow:!0,disabled:ec.isPending||!b.trim(),children:[ec.isPending?"Scanning…":"Run Scan",(0,t.jsx)(r.ArrowRight,{size:14})]})]}),(0,t.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."})]}),el.isError&&(0,t.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:el.error instanceof Error?el.error.message:"Failed to open native picker"}),eg&&(0,t.jsx)("div",{className:`mt-4 rounded-xl px-4 py-3 text-sm ${ey?"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:eg.message})]}),(0,t.jsxs)(h.GlassCard,{className:`p-6 ${ec.isPending?"scan-sweep":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Scan Result"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(p.Badge,{variant:"muted",children:[eb.total," scans"]}),(0,t.jsxs)(p.Badge,{variant:"muted",children:["Avg ",eb.avgScore??"—"]})]})]}),ej?(0,t.jsxs)("div",{className:"mt-5 space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-start gap-6",children:[(0,t.jsx)(j,{score:ej.trustScore,size:120}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:ej.target}),(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(ej.riskLevel),children:ej.riskLevel})]}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,t.jsxs)(p.Badge,{variant:"muted",children:[ej.filesScanned," files"]}),(0,t.jsx)(p.Badge,{variant:"muted",children:ej.deepScan?"Deep":"Standard"}),(0,t.jsx)(p.Badge,{variant:"muted",children:X(ej.scannedAt)})]})]})]}),(0,t.jsx)("div",{className:"space-y-3",children:0===ej.findings.length?(0,t.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."}):ej.findings.map((e,a)=>(0,t.jsxs)(h.GlassCard,{severity:e.severity,className:"p-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.severity),children:e.severity}),(0,t.jsx)(p.Badge,{variant:"muted",children:e.category})]}),(0,t.jsx)("p",{className:"mt-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.title}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:e.description}),(e.file||e.evidence)&&(0,t.jsxs)("div",{className:"mt-2 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[e.file&&(0,t.jsxs)("div",{children:["File: ",e.line?`${e.file}:${e.line}`:e.file]}),e.evidence&&(0,t.jsxs)("div",{children:["Evidence: ",e.evidence]})]}),(0,t.jsx)(Q,{finding:{...e,id:ep[a]?.id,status:ep[a]?.status},target:ej.target}),ep[a]&&(0,t.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,t.jsx)(R,{findingId:ep[a].id,status:ep[a].status,hasFile:!!e.file,compact:!0})})]},`${e.title}-${a}`))})]}):(0,t.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,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-5",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Capabilities"}),(0,t.jsx)("div",{className:"mt-4 space-y-3",children:[{label:"Local scan",enabled:eN?.localScan??!0},{label:"Watch mode",enabled:eN?.watchMode??!0},{label:"Preinstall hook",enabled:eN?.preinstallHook??!1},{label:"npm inspection",enabled:eN?.npmInspection??!1},{label:"Deep scan",enabled:eN?.deepScan??!1}].map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:e.label}),(0,t.jsx)(p.Badge,{variant:e.enabled?"cyan":"muted",dot:!0,children:e.enabled?"On":"Off"})]},e.label))})]}),(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-5",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quick stats"}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Watch roots"}),(0,t.jsxs)("span",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:[ek?.activeWatchRoots??0," active"]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Stale roots"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-amber)]",children:ek?.staleWatchRoots??0})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Blocked events"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-coral)]",children:ek?.blockedEvents??0})]})]})]})]})]}),"history"===e&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(h.GlassCard,{className:"p-4",children:[(0,t.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[1fr_auto_auto]",children:[(0,t.jsx)("input",{value:q,onChange:e=>D(e.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,t.jsxs)("select",{value:E,onChange:e=>z(e.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,t.jsx)("option",{value:"ALL",children:"All risk"}),(0,t.jsx)("option",{value:"CRITICAL",children:"Critical"}),(0,t.jsx)("option",{value:"HIGH",children:"High"}),(0,t.jsx)("option",{value:"MEDIUM",children:"Medium"}),(0,t.jsx)("option",{value:"LOW",children:"Low"}),(0,t.jsx)("option",{value:"SAFE",children:"Safe"})]}),(0,t.jsxs)("select",{value:A,onChange:e=>P(e.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,t.jsx)("option",{value:"all",children:"All targets"}),(0,t.jsx)("option",{value:"file",children:"Files"}),(0,t.jsx)("option",{value:"dir",children:"Directories"}),(0,t.jsx)("option",{value:"npm",children:"Packages"})]})]}),(0,t.jsx)("div",{className:"mt-3 flex gap-2",children:["all","true","false"].map(e=>(0,t.jsx)("button",{onClick:()=>M(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${L===e?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===e?"All scans":"true"===e?"Deep only":"Standard only"},e))})]}),(0,t.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[0.45fr_0.55fr]",children:[(0,t.jsx)("div",{className:"space-y-3",children:0===er.length?(0,t.jsx)(h.GlassCard,{className:"p-5 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching scan history yet."}):er.map(e=>(0,t.jsxs)(h.GlassCard,{hover:!0,selected:ed===e.id,onClick:()=>{B(e.id),N(e.target),w(e.deepScan)},className:"p-4",children:[(0,t.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:e.target}),(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:X(e.scannedAt)}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.riskLevel),children:e.riskLevel}),(0,t.jsxs)(p.Badge,{variant:"muted",children:["Score ",e.trustScore]}),(0,t.jsxs)(p.Badge,{variant:"muted",children:[e.findingCount," findings"]})]})]},e.id))}),ej?(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-start gap-5",children:[(0,t.jsx)(j,{score:ej.trustScore,size:100}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:ej.target}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(ej.riskLevel),children:ej.riskLevel}),(0,t.jsxs)(p.Badge,{variant:"muted",children:[ej.filesScanned," files"]}),(0,t.jsx)(p.Badge,{variant:"muted",children:ej.deepScan?"Deep":"Standard"})]})]})]}),(0,t.jsx)("div",{className:"mt-5 space-y-3",children:0===ej.findings.length?(0,t.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."}):ej.findings.map((e,a)=>(0,t.jsxs)(h.GlassCard,{severity:e.severity,className:"p-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.severity),children:e.severity}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:e.description}),(0,t.jsx)(Q,{finding:e,target:ej.target})]},`${e.title}-${a}`))})]}):(0,t.jsx)(h.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"===e&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Start Watching"}),(0,t.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,t.jsxs)("form",{className:"mt-4 flex flex-wrap items-end gap-3",onSubmit:e=>{e.preventDefault(),K.trim()&&em.mutate({target:K.trim(),deep:V})},children:[(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsx)("input",{value:K,onChange:e=>O(e.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,t.jsxs)("button",{type:"button",onClick:()=>el.mutate("folder",{onSuccess:e=>{e.path&&O(e.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,t.jsx)(l,{size:14})," Browse"]}),(0,t.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,t.jsx)("input",{type:"checkbox",checked:V,onChange:e=>U(e.target.checked),className:"h-4 w-4 rounded accent-[var(--sc-cyan)]"}),"Deep"]}),(0,t.jsxs)(g.Button,{type:"submit",variant:"cyan",disabled:em.isPending||!K.trim(),children:[em.isPending?"Starting…":"Start Watch",(0,t.jsx)(i.Eye,{size:14})]})]}),em.isSuccess&&(0,t.jsxs)("p",{className:"mt-3 text-sm text-[var(--sc-cyan)]",children:["Watching ",em.data.root]}),em.isError&&(0,t.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-coral)]",children:em.error instanceof Error?em.error.message:"Failed to start watch"})]}),eu.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-3 text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Active Watchers (This Session)"}),(0,t.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:eu.map(e=>(0,t.jsxs)(h.GlassCard,{className:"flex items-center justify-between p-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:e.root}),(0,t.jsxs)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:["PID ",e.pid]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(p.Badge,{variant:"cyan",dot:!0,pulse:!0,children:"Watching"}),(0,t.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>ev.mutate(e.root),disabled:ev.isPending,children:"Stop"})]})]},e.root))})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Session History"}),(0,t.jsx)("div",{className:"flex gap-2",children:["all","active","stale","ended"].map(e=>(0,t.jsx)("button",{onClick:()=>I(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${G===e?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:e},e))})]}),0===en.length?(0,t.jsxs)(h.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,t.jsx)("code",{className:"font-mono text-[var(--sc-cyan)]",children:"shieldcortex xray --watch ./src"})," from the CLI."]}):(0,t.jsx)("div",{className:"grid gap-4 lg:grid-cols-2",children:en.map(e=>(0,t.jsxs)(h.GlassCard,{className:"p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:e.root}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Started ",X(e.startedAt)]})]}),(0,t.jsx)(p.Badge,{variant:"active"===e.state?"cyan":"stale"===e.state?"amber":"muted",dot:!0,pulse:"active"===e.state,children:e.state})]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:e.lastEventSummary??"No detections yet"}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,t.jsxs)(p.Badge,{variant:"muted",children:[e.changesDetected," changes"]}),(0,t.jsxs)(p.Badge,{variant:"muted",children:[e.findingsDetected," findings"]}),(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.highestRiskLevel),children:e.highestRiskLevel})]})]},e.id))})]}),"activity"===e&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"flex gap-2",children:["all","scan","watch","preinstall"].map(e=>(0,t.jsx)("button",{onClick:()=>T(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${W===e?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===e?"All activity":e},e))}),0===ei.length?(0,t.jsx)(h.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching automatic events yet."}):(0,t.jsx)("div",{className:"space-y-3",children:ei.map(e=>(0,t.jsx)(h.GlassCard,{className:"p-4",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o,{size:14,className:"shrink-0 text-[var(--sc-coral)]"}),(0,t.jsx)("span",{className:"text-sm font-semibold capitalize text-[var(--sc-text-primary)]",children:e.kind})]}),(0,t.jsx)("p",{className:"mt-1 truncate text-sm text-[var(--sc-text-secondary)]",children:e.target}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:e.summary})]}),(0,t.jsx)(p.Badge,{variant:"pass"===e.status?"safe":"blocked"===e.status?"critical":"warn"===e.status?"medium":"amber",children:e.status})]})},e.id))})]}),"findings"===e&&(0,t.jsxs)("div",{className:"space-y-4",children:[ea&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)(p.Badge,{variant:"coral",children:[ea.new," new"]}),(0,t.jsxs)(p.Badge,{variant:"muted",children:[ea.reviewed," reviewed"]}),(0,t.jsxs)(p.Badge,{variant:"cyan",children:[ea.resolved," resolved"]}),(0,t.jsxs)(p.Badge,{variant:"amber",children:[ea.quarantined," quarantined"]}),(0,t.jsxs)(p.Badge,{variant:"muted",children:[ea.ignored," ignored"]}),(0,t.jsxs)(p.Badge,{variant:"muted",children:[ea.total," total"]})]}),(0,t.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:e,label:a,accent:s})=>(0,t.jsxs)("button",{onClick:()=>J(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${_===e?s?"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:[a,"new"===e&&ea&&ea.new>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-white/20 px-1.5 py-0.5 text-[10px] font-bold",children:ea.new})]},e))}),es?.findings&&0!==es.findings.length?(0,t.jsx)("div",{className:"space-y-3",children:es.findings.map(e=>(0,t.jsxs)(h.GlassCard,{severity:e.severity,className:"p-5",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.severity),children:e.severity}),(0,t.jsx)(p.Badge,{variant:"muted",children:e.category}),e.systemFile&&(0,t.jsx)(p.Badge,{variant:"muted",children:"System file — likely safe"}),e.guidance?.urgency==="usually-safe"&&!e.systemFile&&(0,t.jsx)(p.Badge,{variant:"cyan",children:"Usually safe"}),e.guidance?.urgency==="act-now"&&(0,t.jsx)(p.Badge,{variant:"critical",dot:!0,pulse:!0,children:"Act now"})]}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.title}),e.guidance&&(0,t.jsxs)("div",{className:"mt-3 space-y-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"What this means"}),(0,t.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:e.guidance.whatItMeans})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-cyan)]",children:"What to do"}),(0,t.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:e.guidance.whatToDo})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"False positive?"}),(0,t.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--sc-text-muted)]",children:e.guidance.falsePositiveNote})]})]}),(e.file||e.evidence)&&(0,t.jsxs)("div",{className:"mt-3 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[e.file&&(0,t.jsxs)("div",{children:["File: ",e.line?`${e.file}:${e.line}`:e.file]}),e.evidence&&(0,t.jsxs)("div",{children:["Evidence: ",e.evidence]})]}),(0,t.jsx)(Q,{finding:e}),(0,t.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:X(e.detectedAt)}),(0,t.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,t.jsx)(R,{findingId:e.id,status:e.status,hasFile:!!e.file,compact:!0})})]},e.id))}):(0,t.jsxs)(h.GlassCard,{className:"p-8 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--sc-text-primary)]",children:"new"===_?"All clear — no findings need attention":`No ${"all"===_?"":_+" "}findings`}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"new"===_?"Run an X-Ray scan or start a watcher to monitor for threats.":"Findings move here when you take action on them."})]})]})]})})}e.s(["XRayOverview",()=>K],27918)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87927,e=>{"use strict";let t="shieldcortex.graph.intensity",r=new Set(["subtle","moderate","strong"]);function a(e){let a=e??window.localStorage;if(!a)return"moderate";let n=a.getItem(t);return"string"==typeof n&&r.has(n)?n:"moderate"}function n(e,r){let a=r??window.localStorage;a&&(a.setItem(t,e),"u">typeof CustomEvent&&window.dispatchEvent(new CustomEvent("shieldcortex:intensity-changed",{detail:e})))}function l(){return!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}e.s(["INTENSITY",0,{subtle:{breathPeriod:6e3,breathAmp:.03,particleCap:20,decayCreate:.98,decayRecall:.96},moderate:{breathPeriod:3e3,breathAmp:.08,particleCap:60,decayCreate:.96,decayRecall:.93},strong:{breathPeriod:1600,breathAmp:.14,particleCap:120,decayCreate:.94,decayRecall:.9}},"REDUCED_INTENSITY",0,{breathPeriod:1/0,breathAmp:0,particleCap:0,decayCreate:0,decayRecall:0},"isReducedMotion",()=>l,"loadIntensity",()=>a,"saveIntensity",()=>n])},68595,e=>{"use strict";var t=e.i(27493),r=e.i(4),a=e.i(6847),n=e.i(17278),l=e.i(16467),s=e.i(95659),i=e.i(74133);let o=(e,t,r)=>Math.min(r,Math.max(t,e)),c="#7dd3fc";function d(e){return"string"==typeof e?e:e.id}var u=e.i(87927);class m{level;settings;knownNodes=new Set;phase=new Map;spikeEnergy=new Map;recallEnergy=new Map;breathOffset=new Map;now;lastFrameAt=0;constructor(e){this.level=e.intensity,this.settings=u.INTENSITY[e.intensity],this.now=e.now??("u">typeof performance?()=>performance.now():Date.now)}setIntensity(e){this.level=e,this.settings=u.INTENSITY[e]}observeNodes(e){for(let t of e)this.knownNodes.has(t)||(this.knownNodes.add(t),this.phase.set(t,function(e){let t=0x811c9dc5;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=0x1000193*t>>>0;return t/0x100000000}(t)*Math.PI*2))}dispatch(e){this.knownNodes.has(e.entityId)&&("memory.created"===e.type&&this.spikeEnergy.set(e.entityId,1),"memory.accessed"===e.type&&this.recallEnergy.set(e.entityId,1))}onFrame(e){this.lastFrameAt=e;let{breathPeriod:t,breathAmp:r}=this.settings,a=2*Math.PI/t;for(let t of this.knownNodes){let n=this.phase.get(t)??0;this.breathOffset.set(t,Math.sin(a*e+n)*r)}let n=this.settings.decayCreate;for(let[e,t]of this.spikeEnergy){let r=t*n;r<.001?this.spikeEnergy.delete(e):this.spikeEnergy.set(e,r)}let l=this.settings.decayRecall;for(let[e,t]of this.recallEnergy){let r=t*l;r<.001?this.recallEnergy.delete(e):this.recallEnergy.set(e,r)}}getEnergy(e){return this.knownNodes.has(e)?(this.breathOffset.get(e)??0)+(this.spikeEnergy.get(e)??0):0}getRecallEnergy(e){return this.knownNodes.has(e)?this.recallEnergy.get(e)??0:0}pickParticleEdges(e,t,r){let a=r??this.settings.particleCap;if(a<=0||0===e.length)return[];let n=e=>"string"==typeof e?e:e.id,l=e.map(e=>{let r=n(e.source),a=n(e.target);return{link:e,score:Math.max(Math.max(this.getEnergy(r),this.getRecallEnergy(r)),Math.max(this.getEnergy(a),this.getRecallEnergy(a))),anchorAdjacent:+(null!==t&&(r===t||a===t))}});return l.sort((e,t)=>t.score!==e.score?t.score-e.score:t.anchorAdjacent-e.anchorAdjacent),l.slice(0,a).map(e=>e.link)}}function h({driver:e}){let[a,n]=(0,r.useState)("");return"1"===window.localStorage.getItem("SHIELDCORTEX_DEBUG_PULSE")&&e?(0,t.jsxs)("div",{style:{position:"absolute",bottom:8,right:8,padding:8,background:"#0a0d14cc",color:"#e2e8f0",fontSize:12,border:"1px solid #1e293b",zIndex:10},children:[(0,t.jsx)("div",{style:{marginBottom:4,opacity:.6},children:"pulse debug"}),(0,t.jsx)("input",{value:a,onChange:e=>n(e.target.value),placeholder:"entity id",style:{width:140,background:"#06070d",color:"#e2e8f0",border:"1px solid #1e293b",padding:"2px 4px"}}),(0,t.jsxs)("div",{style:{display:"flex",gap:4,marginTop:4},children:[(0,t.jsx)("button",{onClick:()=>e.dispatch({type:"memory.created",entityId:a}),children:"created"}),(0,t.jsx)("button",{onClick:()=>e.dispatch({type:"memory.accessed",entityId:a}),children:"accessed"})]})]}):null}var f=e.i(22534),p=e.i(35372);let y=f.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",g=(0,i.default)(()=>e.A(23531),{loadableGenerated:{modules:[23272]},ssr:!1}),x={tool:"#00e5cc",concept:"#ff4d4d",project:"#f59e0b",file:"#5a6480",service:"#a78bfa",person:"#34d399",language:"#a78bfa",pattern:"#fb923c"};function b({clusters:e,allTriples:a,totalEntities:n,totalConnections:l,width:s,height:i,onSelectEntity:f,selectedEntityId:b}){let v=(0,r.useRef)(void 0),C=(0,r.useRef)(null),j=(0,r.useRef)(1),[k,w]=(0,r.useState)(null),[S,N]=(0,r.useState)(null),[M,E]=(0,r.useState)(null),[I,P]=(0,r.useState)("moderate"),T=(0,r.useMemo)(()=>(0,u.isReducedMotion)(),[]),R=(0,r.useMemo)(()=>T?u.REDUCED_INTENSITY:u.INTENSITY[I],[T,I]),A=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let r of e)for(let e of r.entities)t.set(e.id,r.type);return t})(e),[e]),F=(0,r.useMemo)(()=>{let t=function(e,t){let r=new Map;for(let a of e){let e=t.get(a.source),n=t.get(a.target);if(e&&n&&e!==n){let t=[e,n].sort().join("::");r.set(t,(r.get(t)||0)+1)}}return r}(a,A),r=e.map((t,r)=>{let a=r/e.length*Math.PI*2-Math.PI/2;return{id:`cluster::${t.type}`,name:t.type,type:t.type,memoryCount:t.entities.reduce((e,t)=>e+t.memoryCount,0),colour:t.colour,isCluster:!0,clusterType:t.type,entityCount:t.entities.length,x:150*Math.cos(a),y:150*Math.sin(a)}}),n=[];for(let[e,r]of t.entries()){let[t,a]=e.split("::");r>5&&n.push({source:`cluster::${t}`,target:`cluster::${a}`,weight:Math.min(r/100,1)})}return{nodes:r,links:n}},[e,a,A]),$=(0,r.useMemo)(()=>{if(!S)return null;let t=e.find(e=>e.type===S);if(!t)return null;let r=t.entities.slice(0,100),n=new Set(r.map(e=>e.id)),l=r.map(e=>({id:e.id,name:e.name,type:e.type,memoryCount:e.memoryCount,colour:t.colour})),s=new Map;for(let e of a){if(n.has(e.source)&&!n.has(e.target)){let t=A.get(e.target);t&&t!==S&&s.set(t,(s.get(t)||0)+1)}if(n.has(e.target)&&!n.has(e.source)){let t=A.get(e.source);t&&t!==S&&s.set(t,(s.get(t)||0)+1)}}for(let[e,t]of s.entries())t>2&&l.push({id:`ghost::${e}`,name:e,type:e,memoryCount:t,colour:x[e]||"#8892b0",isCluster:!0,clusterType:e,entityCount:t});let i=[],o=new Set;for(let e of a){let t=n.has(e.source),r=n.has(e.target);if(t&&r){let t=`${e.source}::${e.target}`;o.has(t)||(o.add(t),i.push({source:e.source,target:e.target,predicate:e.predicate}))}else if(t&&!r){let t=A.get(e.target);if(t&&t!==S&&s.has(t)){let r=`${e.source}::ghost::${t}`;o.has(r)||(o.add(r),i.push({source:e.source,target:`ghost::${t}`}))}}else if(r&&!t){let t=A.get(e.source);if(t&&t!==S&&s.has(t)){let r=`ghost::${t}::${e.target}`;o.has(r)||(o.add(r),i.push({source:`ghost::${t}`,target:e.target}))}}}return{nodes:l,links:i}},[S,e,a,A]),_=S&&$?$:F;(0,r.useEffect)(()=>{let e=(0,u.loadIntensity)();P(e);let t=new m({intensity:e});w(t);let r=e=>{let r=e.detail;("subtle"===r||"moderate"===r||"strong"===r)&&(P(r),t.setIntensity(r))};return window.addEventListener("shieldcortex:intensity-changed",r),()=>{window.removeEventListener("shieldcortex:intensity-changed",r)}},[]),(0,r.useEffect)(()=>{k?.observeNodes(_.nodes.map(e=>e.id))},[k,_.nodes]),function(e,t=!0){let{subscribe:a,isConnected:n}=(0,p.useMemoryWebSocketContext)(),l=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(e&&t)return a(t=>{if(!t?.type||!t.data)return;let r="memory_created"===t.type?"memory.created":"memory_accessed"===t.type?"memory.accessed":null;if(r)for(let a of t.data.entity_ids??[])e.dispatch({type:r,entityId:String(a)})})},[e,t,a]),(0,r.useEffect)(()=>{if(!e||!t||n)return;let r=!1,a=setInterval(()=>{let t=l.current;fetch(`${y}/api/memories?mode=recent&limit=50`,{credentials:"include"}).then(e=>e.ok?e.json():null).then(a=>{if(!a||r)return;let n=a.memories??[];for(let r of n)if(!t||!r.created_at||!(r.created_at<=t))for(let t of r.entity_ids??[])e.dispatch({type:"memory.created",entityId:String(t)});n[0]?.created_at&&(l.current=n[0].created_at)}).catch(()=>{})},1e4);return()=>{r=!0,clearInterval(a)}},[e,t,n])}(k,!0),(0,r.useEffect)(()=>{let e=function(e,t){if(0===e.length)return null;let r=new Set(e.map(e=>e.id)),a=new Map;for(let e of t){let t=d(e.source),n=d(e.target);r.has(t)&&a.set(t,(a.get(t)??0)+1),r.has(n)&&a.set(n,(a.get(n)??0)+1)}let n=null,l=0;for(let t of e){let e=t.memoryCount*(a.get(t.id)??0);0!==e&&(null===n||e>l||e===l&&0>t.name.localeCompare(n.name))&&(n=t,l=e)}if(n)return n.id;let s=0;for(let t of e)0!==t.memoryCount&&(null===n||t.memoryCount>s||t.memoryCount===s&&0>t.name.localeCompare(n.name))&&(n=t,s=t.memoryCount);return n?.id??null}(_.nodes.map(e=>({id:e.id,name:e.name,memoryCount:e.memoryCount})),_.links);e!==M&&(!function(e,t,r){let a=e.find(e=>e.id===t);if(a){if(r&&r!==t){let t=e.find(e=>e.id===r);t&&(t.fx=null,t.fy=null)}a.fx=0,a.fy=0}}(_.nodes,e??"",M),E(e))},[_.nodes,_.links,M]),(0,r.useEffect)(()=>{let e=v.current;e&&(S?(e.d3Force("charge")?.strength(-80),e.d3Force("link")?.distance(40),e.d3Force("center")?.strength(.05)):(e.d3Force("charge")?.strength(-2e3),e.d3Force("link")?.distance(180),e.d3Force("center")?.strength(.03)))},[S,_]);let D=(0,r.useRef)(!1);(0,r.useEffect)(()=>{if(D.current||!_.nodes.length)return;D.current=!0;let e=setTimeout(()=>v.current?.zoomToFit(400*!T,80),1500);return()=>clearTimeout(e)},[_.nodes.length,T]);let B=(0,r.useCallback)(({k:e})=>{j.current=e},[]),L=(0,r.useMemo)(()=>(function(e,t={}){let r=new Map;return{handleNodeDragEnd(e){void 0!==e.x&&void 0!==e.y&&(e.fx=e.x,e.fy=e.y)},handleNodeClick(a,n){if(n.shiftKey&&null!==a.fx&&void 0!==a.fx)return a.fx=null,a.fy=null,t.onUnpin?.(String(a.id)),r.delete(String(a.id)),"unpin";let l=String(a.id),s=performance.now(),i=r.get(l)??0;return(r.set(l,s),s-i<=300)?(void 0!==a.x&&void 0!==a.y&&(e.current?.centerAt(a.x,a.y,600),e.current?.zoom(2,600)),r.delete(l),"double-click"):"single-click"},handleBackgroundDoubleClick(t){t(),e.current?.zoomToFit(600,80)}}})(v),[]),O=(0,r.useCallback)((e,t)=>{"single-click"===L.handleNodeClick(e,t)&&(e.isCluster?(N((e.clusterType||e.type).replace("ghost::","")),f?.(null)):f?.({id:e.id,name:e.name,type:e.type,memoryCount:e.memoryCount}))},[L,f]),z=(0,r.useCallback)(()=>{S&&(N(null),f?.(null))},[S,f]),G=(0,r.useCallback)(()=>{L.handleBackgroundDoubleClick(()=>{N(null),f?.(null)})},[L,f]),U=(0,r.useCallback)(e=>{C.current=e?String(e.id):null},[]),q=(0,r.useCallback)((e,t,r)=>{if(void 0===e.x||void 0===e.y)return;let a=String(e.id),n=a===C.current,l=null!=b&&a===b,s=j.current;if(t.save(),l&&!e.isCluster){let r=.8+Math.min(.4*Math.log2((e.memoryCount||1)+1),2.5),a=t.createRadialGradient(e.x,e.y,r,e.x,e.y,8*r);a.addColorStop(0,"#ffffff18"),a.addColorStop(1,"#ffffff00"),t.beginPath(),t.arc(e.x,e.y,8*r,0,2*Math.PI),t.fillStyle=a,t.fill()}if(e.isCluster){!function(e,t,r,a){let n=t.entityCount||5,l=Math.min(15+3*Math.sqrt(n),60),s=3*l,i=e.createRadialGradient(t.x,t.y,.5*l,t.x,t.y,s);i.addColorStop(0,t.colour+"15"),i.addColorStop(.4,t.colour+"08"),i.addColorStop(1,t.colour+"00"),e.beginPath(),e.arc(t.x,t.y,s,0,2*Math.PI),e.fillStyle=i,e.fill();let o=e.createRadialGradient(t.x,t.y,0,t.x,t.y,.8*l);o.addColorStop(0,t.colour+"28"),o.addColorStop(.6,t.colour+"10"),o.addColorStop(1,t.colour+"02"),e.beginPath(),e.arc(t.x,t.y,.8*l,0,2*Math.PI),e.fillStyle=o,e.fill();let c=Math.min(n,40),d=t.id.charCodeAt(t.id.length-1);for(let r=0;r<c;r++){let a=(d+137.508*r)%360*(Math.PI/180),n=.1*l+.85*l*Math.pow((7*d+31*r)%100/100,.6),s=t.x+Math.cos(a)*n,i=t.y+Math.sin(a)*n,o=.5+(17*r+d)%4*.3;e.beginPath(),e.arc(s,i,o,0,2*Math.PI),e.fillStyle=t.colour+(r<5?"dd":r<15?"88":"44"),e.fill()}a&&(e.beginPath(),e.arc(t.x,t.y,l,0,2*Math.PI),e.strokeStyle=t.colour+"50",e.lineWidth=1.5,e.setLineDash([4,4]),e.stroke(),e.setLineDash([]));let u=Math.max(13/Math.max(r,.3),8);e.font=`600 ${u}px Inter, system-ui, sans-serif`,e.textAlign="center",e.textBaseline="top",e.fillStyle=t.colour+"bb",e.fillText(t.name,t.x,t.y+l+8);let m=Math.max(10/Math.max(r,.3),6);e.font=`400 ${m}px Inter, system-ui, sans-serif`,e.fillStyle="#ffffff30",e.fillText(`${n} entities`,t.x,t.y+l+8+u+3)}(t,e,s,n),t.restore();return}let i=k?.getEnergy(a)??0,o=k?.getRecallEnergy(a)??0,c=.8+Math.min(.4*Math.log2((e.memoryCount??0)+1),2.5);if(!function(e,t={}){var r;let a,{ctx:n,node:l,intensity:s,energy:i,recallEnergy:o,isAnchor:c,isSelected:d,baseRadius:u}=e;if(void 0===l.x||void 0===l.y)return;let m=(a=(r={baseRadius:u,energy:i,breathAmp:s.breathAmp}).baseRadius*(1+r.energy*r.breathAmp),Math.max(.2*r.baseRadius,a));t._paintHook?.({nodeId:l.id,radius:m,energy:i,recallEnergy:o});let h=m*(c?5:3.5),f=n.createRadialGradient(l.x,l.y,.2*m,l.x,l.y,h);if(f.addColorStop(0,l.colour+(c?"40":d?"50":"20")),f.addColorStop(1,l.colour+"00"),n.beginPath(),n.arc(l.x,l.y,h,0,2*Math.PI),n.fillStyle=f,n.fill(),o>.05&&(n.beginPath(),n.arc(l.x,l.y,1.6*m,0,2*Math.PI),n.strokeStyle="#fb923c",n.globalAlpha=Math.min(.7,o),n.lineWidth=1.5,n.stroke(),n.globalAlpha=1),c){n.beginPath(),n.arc(l.x,l.y,m,0,2*Math.PI),n.fillStyle="#fde68a",n.fill(),n.lineWidth=1.5,n.strokeStyle="#fbbf24",n.stroke();return}n.beginPath(),n.arc(l.x,l.y,m,0,2*Math.PI),n.fillStyle=l.colour,n.fill(),d&&(n.lineWidth=1.5,n.strokeStyle="#ffffff",n.stroke())}({ctx:t,globalScale:r,node:e,intensity:R,energy:i,recallEnergy:o,isAnchor:a===M,isSelected:l,isHovered:n,baseRadius:c}),n&&!l&&a!==M){let r=c*(1+i*R.breathAmp);t.beginPath(),t.arc(e.x,e.y,r,0,2*Math.PI),t.strokeStyle=e.colour,t.lineWidth=.7,t.stroke()}let d=e.memoryCount||1;if(l||n||s>=3||s>=1.5&&d>30||s>=.8&&d>100){let r=c*(1+i*R.breathAmp),a=Math.max((l?11:n?10:8)/Math.max(s,.4),5);t.font=`${a}px Inter, system-ui, sans-serif`,t.textAlign="center",t.textBaseline="top",t.fillStyle=l?"#ffffff":n?"#f0f4ffcc":"#f0f4ff66",t.fillText(e.name,e.x,e.y+r+2)}t.restore()},[b,M,R,k]),W=(0,r.useCallback)((e,t)=>{let r=e.source,a=e.target;if("object"!=typeof r||"object"!=typeof a||void 0===r.x||void 0===r.y||void 0===a.x||void 0===a.y)return;let n=String(r.id),l=String(a.id),s=k?.getEnergy(n)??0,i=k?.getEnergy(l)??0;!function(e){let{ctx:t,link:r,srcEnergy:a,dstEnergy:n}=e,l=r.source,s=r.target;if(void 0===l.x||void 0===l.y||void 0===s.x||void 0===s.y)return;let i=t.globalCompositeOperation;t.globalCompositeOperation="lighter";let d=t.createLinearGradient(l.x,l.y,s.x,s.y);d.addColorStop(0,l.colour??c),d.addColorStop(1,s.colour??c),t.strokeStyle=d,t.globalAlpha=o(.35+.6*Math.max(a,n),0,1),t.lineWidth=o(1+.8*Math.max(a,n),.5,3),t.beginPath(),t.moveTo(l.x,l.y),t.lineTo(s.x,s.y),t.stroke(),t.globalAlpha=1,t.globalCompositeOperation=i}({ctx:t,link:{source:{x:r.x,y:r.y,colour:r.colour,id:n},target:{x:a.x,y:a.y,colour:a.colour,id:l}},srcEnergy:s,dstEnergy:i})},[k]),K=(0,r.useRef)(new Set),Y=(0,r.useCallback)(()=>{if(!k)return;k.onFrame(performance.now());let e=k.pickParticleEdges(_.links.map(e=>({source:String(e.source),target:String(e.target)})),M),t=new Set;for(let r of e)t.add(`${r.source}::${r.target}`);K.current=t},[k,_.links,M]);if(s<10||i<10)return null;let H=S?e.find(e=>e.type===S):null;return(0,t.jsxs)("div",{className:"relative h-full w-full",children:[S&&(0,t.jsxs)("button",{type:"button",onClick:z,className:"absolute left-4 top-4 z-20 flex items-center gap-2 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/90 px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] backdrop-blur-sm transition-colors hover:border-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]",children:[(0,t.jsx)("span",{children:"←"}),(0,t.jsx)("span",{children:"All clusters"})]}),H&&(0,t.jsxs)("div",{className:"absolute right-4 top-4 z-20 flex items-center gap-2 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/90 px-3 py-1.5 backdrop-blur-sm",children:[(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:H.colour}}),(0,t.jsx)("span",{className:"text-xs font-semibold text-[var(--sc-text-primary)]",children:H.type}),(0,t.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[H.entities.length," entities"]})]}),(0,t.jsxs)("div",{onDoubleClick:G,style:{position:"relative"},children:[(0,t.jsx)(g,{ref:v,graphData:_,width:s,height:i,backgroundColor:"rgba(0,0,0,0)",nodeCanvasObjectMode:()=>"replace",nodeCanvasObject:q,nodePointerAreaPaint:(e,t,r)=>{let a;void 0!==e.x&&void 0!==e.y&&(a=e.isCluster?Math.min(15+3*Math.sqrt(e.entityCount||5),60):4+Math.min(.5*Math.log2((e.memoryCount||1)+1),3),r.beginPath(),r.arc(e.x,e.y,a,0,2*Math.PI),r.fillStyle=t,r.fill())},linkCanvasObjectMode:()=>"replace",linkCanvasObject:W,linkDirectionalParticles:e=>{let t="object"==typeof e.source?e.source.id:String(e.source),r="object"==typeof e.target?e.target.id:String(e.target);return 2*!!K.current.has(`${t}::${r}`)},linkDirectionalParticleWidth:1.2,linkDirectionalParticleSpeed:.005,onNodeClick:O,onNodeDragEnd:e=>L.handleNodeDragEnd(e),onNodeHover:U,onBackgroundClick:z,onZoom:B,onRenderFramePre:Y,d3AlphaDecay:.02,d3VelocityDecay:.3,cooldownTicks:300,warmupTicks:80,nodeRelSize:1,enableNodeDrag:!0,enableZoomInteraction:!0,onEngineStop:()=>{!D.current&&_.nodes.length&&(D.current=!0,v.current?.zoomToFit(400*!T,80))}}),(0,t.jsx)(h,{driver:k})]}),(0,t.jsxs)("div",{className:"absolute bottom-3 left-0 right-0 z-10 flex items-center justify-center gap-4 text-[11px] text-[var(--sc-text-muted)]",children:[(0,t.jsxs)("span",{children:[n.toLocaleString()," entities"]}),(0,t.jsx)("span",{className:"text-[var(--sc-border)]",children:"·"}),(0,t.jsxs)("span",{children:[l.toLocaleString()," connections"]}),(0,t.jsx)("span",{className:"text-[var(--sc-border)]",children:"·"}),(0,t.jsxs)("span",{children:[e.length," clusters"]}),H&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-[var(--sc-border)]",children:"·"}),(0,t.jsxs)("span",{style:{color:H.colour},children:[H.entities.length," ",S," entities"]})]})]})]})}let v={tool:"cyan",concept:"coral",project:"amber",service:"cyan",person:"cyan"},C={architecture:"cyan",error:"coral",decision:"amber",learning:"cyan",preference:"muted"};function j({entity:e,relatedEntities:r,recentMemories:a,onNavigate:n}){return(0,t.jsxs)("div",{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsx)(l.GlassCard,{className:"p-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"mt-1 h-3 w-3 shrink-0 rounded-full",style:{backgroundColor:"coral"===v[e.type]?"#ff4d4d":"amber"===v[e.type]?"#f59e0b":"#00e5cc"}}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h2",{className:"truncate text-lg font-semibold text-[var(--sc-text-primary)]",children:e.label}),(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,t.jsx)(s.Badge,{variant:v[e.type]||"muted",children:e.type}),(0,t.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[e.memoryCount," ",1===e.memoryCount?"memory":"memories"]})]})]})]})}),r.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"mb-2 text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Related Entities"}),(0,t.jsx)(l.GlassCard,{className:"divide-y divide-[var(--sc-border)] p-0",children:r.map(e=>(0,t.jsxs)("button",{onClick:()=>n(e.id),className:"flex w-full items-center justify-between px-4 py-2.5 text-left transition-colors hover:bg-[var(--sc-surface-interactive)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:"coral"===v[e.type]?"#ff4d4d":"amber"===v[e.type]?"#f59e0b":"#00e5cc"}}),(0,t.jsx)("span",{className:"truncate text-sm text-[var(--sc-text-primary)]",children:e.label})]}),(0,t.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-[var(--sc-text-muted)]",children:e.memoryCount})]},e.id))})]}),a.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"mb-2 text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Recent Memories"}),(0,t.jsx)("div",{className:"flex flex-col gap-2",children:a.slice(0,8).map(e=>(0,t.jsxs)(l.GlassCard,{className:"p-3",children:[(0,t.jsx)("p",{className:"truncate text-sm text-[var(--sc-text-primary)]",children:e.title}),(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-2",children:[(0,t.jsx)(s.Badge,{variant:C[e.category]||"muted",className:"text-[10px]",children:e.category}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:new Date(e.created_at).toLocaleDateString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric"})})]})]},e.id))})]})]})}var k=e.i(45688),w=e.i(88969);let S=f.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",N={tool:"#00e5cc",concept:"#ff4d4d",project:"#f59e0b",file:"#5a6480",service:"#a78bfa",person:"#34d399",language:"#a78bfa",pattern:"#fb923c"};function M(){var e,i;let[o,c]=(0,r.useState)(null),[d,u]=(0,r.useState)(""),[m,h]=(0,r.useState)(!1),f=function(e,t=300){let[a,n]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let r=setTimeout(()=>{n(e)},t);return()=>{clearTimeout(r)}},[e,t]),a}(d,250),p=(0,r.useRef)(null),[y,g]=(0,r.useState)({width:600,height:500});(0,r.useEffect)(()=>{let e=p.current;if(!e)return;let t=new ResizeObserver(e=>{for(let t of e){let{width:e,height:r}=t.contentRect;g({width:Math.floor(e),height:Math.max(Math.floor(r),500)})}});return t.observe(e),()=>t.disconnect()},[]);let{data:x,isLoading:v}=(0,k.useQuery)({queryKey:["graph","full"],queryFn:async()=>{let[e,t]=await Promise.all([(0,w.authFetch)(`${S}/api/graph/entities?limit=2000`),(0,w.authFetch)(`${S}/api/graph/triples?limit=10000`)]);if(!e.ok||!t.ok)throw Error("Failed to fetch graph data");let[r,a]=await Promise.all([e.json(),t.json()]),n=(r.entities||[]).map(e=>({id:String(e.id),name:e.name,type:e.type,memoryCount:e.memoryCount??e.memory_count??0})),l=(a.triples||[]).map(e=>({source:String(e.subject_id),target:String(e.object_id),predicate:e.predicate})),s=new Map;for(let e of n){let t=s.get(e.type)||[];t.push(e),s.set(e.type,t)}return{entities:n,triples:l,clusters:Array.from(s.entries()).map(([e,t])=>({type:e,entities:t.sort((e,t)=>t.memoryCount-e.memoryCount),colour:N[e]||"#8892b0"})).sort((e,t)=>t.entities.length-e.entities.length),totalConnections:l.length}},staleTime:6e4}),{data:C}=(e=o?.id??null,(0,k.useQuery)({queryKey:["graph","neighbourhood",e],queryFn:async()=>{if(!e)return null;let t=await (0,w.authFetch)(`${S}/api/graph/entities/${e}/neighbourhood`);if(!t.ok)throw Error("Failed to fetch neighbourhood");let r=await t.json(),a={id:String(r.focal.id),name:r.focal.name,type:r.focal.type,memoryCount:r.focal.memoryCount,isFocal:!0},n=new Map;for(let e of(n.set(a.id,a),r.neighbours))n.set(String(e.id),{id:String(e.id),name:e.name,type:e.type,memoryCount:e.memoryCount});let l=r.triples.map(e=>({source:String(e.subject_id),target:String(e.object_id),predicate:e.predicate}));return{nodes:Array.from(n.values()),links:l,focal:a,totalConnections:r.totalConnections}},enabled:null!==e,staleTime:15e3})),{data:M}=(i=o?.id??null,(0,k.useQuery)({queryKey:["graph","memories",i],queryFn:async()=>{if(!i)return[];let e=await (0,w.authFetch)(`${S}/api/graph/entities/${i}/memories`);if(!e.ok)throw Error("Failed to fetch memories");return(await e.json()).memories||[]},enabled:null!==i,staleTime:15e3})),{data:E}=(0,k.useQuery)({queryKey:["graph","search",f],queryFn:async()=>{let e=await (0,w.authFetch)(`${S}/api/graph/search?q=${encodeURIComponent(f)}&limit=8`);if(!e.ok)throw Error("Search failed");return((await e.json()).entities||[]).map(e=>({id:String(e.id),name:e.name,type:e.type,memoryCount:e.memoryCount}))},enabled:f.trim().length>0,staleTime:1e4}),I=(0,r.useCallback)(e=>{c(e)},[]),P=(0,r.useCallback)(e=>{let t=x?.entities.find(t=>t.id===e);t&&c(t)},[x]),T=(0,r.useCallback)(e=>{let t=x?.entities.find(t=>t.id===e);t&&c(t),u(""),h(!1)},[x]),R=(0,r.useMemo)(()=>C?C.nodes.filter(e=>!e.isFocal).sort((e,t)=>t.memoryCount-e.memoryCount).slice(0,15).map(e=>({id:e.id,label:e.name,type:e.type,memoryCount:e.memoryCount})):[],[C]),A=o?{id:o.id,label:o.name,type:o.type,memoryCount:o.memoryCount}:null,F=null!==o;return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-3",children:(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(a.Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--sc-text-muted)]"}),(0,t.jsx)("input",{type:"text",value:d,onChange:e=>{u(e.target.value),h(!0)},onFocus:()=>d.trim()&&h(!0),placeholder:"Search entities...",className:"glass-card w-full py-2.5 pl-10 pr-10 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-cyan)]/40"}),d&&(0,t.jsx)("button",{type:"button",onClick:()=>{u(""),h(!1)},className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]",children:(0,t.jsx)(n.X,{className:"h-4 w-4"})}),m&&E&&E.length>0&&(0,t.jsx)("div",{className:"absolute left-0 right-0 top-full z-50 mt-1 glass-card-strong overflow-hidden py-1",children:E.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>T(e.id),className:"flex w-full items-center justify-between px-4 py-2 text-left transition-colors hover:bg-[var(--sc-surface-interactive)]",children:[(0,t.jsx)("span",{className:"truncate text-sm text-[var(--sc-text-primary)]",children:e.name}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Badge,{variant:"muted",className:"text-[10px]",children:e.type}),(0,t.jsx)("span",{className:"text-xs tabular-nums text-[var(--sc-text-muted)]",children:e.memoryCount})]})]},e.id))})]})}),(0,t.jsxs)("div",{className:`grid gap-4 ${F?"grid-cols-1 md:grid-cols-[1fr_340px]":"grid-cols-1"}`,children:[(0,t.jsxs)(l.GlassCard,{className:"relative min-h-[500px] overflow-hidden border-0 p-0",children:[v&&(0,t.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-[var(--sc-bg-deep)]/60",children:(0,t.jsx)("div",{className:"h-6 w-6 animate-spin rounded-full border-2 border-[var(--sc-cyan)] border-t-transparent"})}),(0,t.jsx)("div",{ref:p,className:"h-full w-full",style:{minHeight:500},children:x&&(0,t.jsx)(b,{clusters:x.clusters,allTriples:x.triples,totalEntities:x.entities.length,totalConnections:x.totalConnections,width:y.width,height:y.height,onSelectEntity:I,selectedEntityId:o?.id})})]}),F&&A&&(0,t.jsx)("div",{className:"min-h-[500px]",children:(0,t.jsx)(j,{entity:A,relatedEntities:R,recentMemories:M??[],onNavigate:P})})]})]})}e.s(["default",()=>M],68595)},13213,e=>{e.n(e.i(68595))},23531,e=>{e.v(t=>Promise.all(["static/chunks/364656baa57adaa7.js"].map(t=>e.l(t))).then(()=>t(23272)))}]);
|