shieldcortex 4.39.0 → 4.41.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/server/app/(dashboard)/admin/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +2 -2
- 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 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +3 -3
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +3 -3
- 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/dashboard_c219bf07._.js +4 -4
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/6dddc4bf46b08fb2.css +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/90baaf667600b429.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{e8884e7f3b85fd0b.js → 9305fb02787779da.js} +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/9b02aba35b7ce4b7.js +15 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/e18095d552836b96.js +1 -0
- package/dist/api/events.js +2 -0
- package/dist/api/redact-response.d.ts +15 -0
- package/dist/api/redact-response.js +19 -0
- package/dist/api/routes/memories.js +86 -21
- package/dist/api/visualization-server.js +15 -4
- package/dist/cloud/cli.js +13 -1
- package/dist/cloud/config.d.ts +10 -0
- package/dist/cloud/config.js +15 -0
- package/dist/defence/audit/queries.d.ts +1 -1
- package/dist/defence/trust/access-control.d.ts +1 -4
- package/dist/defence/trust/access-control.js +32 -0
- package/dist/defence/trust/read-guard.d.ts +42 -0
- package/dist/defence/trust/read-guard.js +120 -0
- package/dist/defence/types.d.ts +1 -1
- package/dist/memory/store.d.ts +4 -2
- package/dist/memory/store.js +9 -7
- package/dist/server.js +9 -1
- package/dist/tools/forget.d.ts +3 -0
- package/dist/tools/forget.js +53 -1
- package/package.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1600063be806f47c.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/61aaa0c660c32b96.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/98ae91e0a6f5d317.css +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/cfbc41857d998b74.js +0 -15
- /package/dashboard/.next/standalone/dashboard/.next/static/{LfTY3B6uX3j7zNwqqgvPG → QyU8uJKG3JL56w9hEtgrx}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{LfTY3B6uX3j7zNwqqgvPG → QyU8uJKG3JL56w9hEtgrx}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{LfTY3B6uX3j7zNwqqgvPG → QyU8uJKG3JL56w9hEtgrx}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[89418,a=>{"use strict";var b=a.i(16306),c=a.i(98419),d=a.i(88904),e=a.i(26943),f=a.i(94992),g=a.i(70694);let h=(0,g.default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),i=(0,g.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);var j=a.i(32322);let k=(0,g.default)("radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]);var l=a.i(66397),m=a.i(83364),n=a.i(86044),o=a.i(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)}];
|
|
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)(R,{message:e.error instanceof Error?e.error.message:"Local explanation failed"})]})}function R({message:a}){let c=a.toLowerCase();return c.includes("disabled")||c.includes("not cached")||c.includes("not enabled")?(0,b.jsxs)("div",{className:"space-y-2 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-surface)]/40 p-3 text-sm text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("p",{className:"font-medium text-[var(--sc-text-primary)]",children:a}),(0,b.jsx)("p",{children:"The Local AI Explainer is opt-in. Enable it from a terminal:"}),(0,b.jsx)("pre",{className:"overflow-x-auto rounded bg-black/30 p-2 text-xs text-[var(--sc-text-primary)]",children:"shieldcortex review-copilot enable --accept-download"}),(0,b.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:"Runs a small local model (Qwen2.5-0.5B) on this machine — nothing leaves your device. Requires a Pro licence."})]}):(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:a})}var S=a.i(26804);function T(a){return a?new Date(a).toLocaleString():"—"}function U(){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,R]=(0,c.useState)("all"),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("new"),{data:$}=(0,S.useXRayHistory)({risk:E,targetType:H,deep:J,search:L}),{data:_}=(0,S.useXRayActivity)(8,{kind:N}),{data:aa}=(0,S.useXRayWatchSessions)(8,{state:P}),{data:ab}=(0,S.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,S.useXRayScan)(),ai=(0,S.usePickXRayTarget)(),aj=A??(ae.length>0?ae[0].id:null),ak=(0,S.useXRayHistoryEntry)(aj),{data:al}=(0,S.useActiveWatchers)(),am=(0,S.useStartWatch)(),an=(0,S.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 min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)("h4",{className:"min-w-0 break-words 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:T(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:T(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 min-w-0",children:[(0,b.jsx)("h4",{className:"break-words 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:()=>R(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 ",T(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:T(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",()=>U],89418)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--QyU8uJKG3JL56w9hEtgrx--><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/6dddc4bf46b08fb2.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/6dddc4bf46b08fb2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"QyU8uJKG3JL56w9hEtgrx\",\"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/6dddc4bf46b08fb2.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><!--QyU8uJKG3JL56w9hEtgrx--><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\":\"QyU8uJKG3JL56w9hEtgrx\",\"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>
|