shieldcortex 4.12.13 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/required-server-files.json +10 -4
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/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.js.nft.json +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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +17 -15
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +17 -15
- 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 +21 -18
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +21 -18
- 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 +20 -18
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +20 -18
- 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.js.nft.json +1 -1
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +17 -15
- 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 +17 -15
- 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 +9 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +17 -15
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_68dcbde9._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__fb5796ae._.js → [root-of-the-server]__2de25d56._.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__52bd7a9f._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__b789489c._.js → [root-of-the-server]__6f881a23._.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_01f6ceb0._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_20c6acea._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{9f1d4_next_c9fe89e1._.js → dashboard_25b568c3._.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2a8eef6b._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35a9932a._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_37f17371._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_77cb2b63._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_91003e6d._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9b8695d8._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a16ef10a._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +4 -4
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f9cd1dc2._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fefd3b85._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_44a9f72c._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_de7ac4f9._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/015dc64369f26b7d.css +3 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/2fe84829530e61a3.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/34d0309a4e34b084.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/3729c748a4361c1f.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/3b7fdf1ee828254c.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{3d53807a9a943ce7.js → 4c90ebd2c08cd656.js} +4 -4
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/4d4af0cecaef56f2.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/4eb86dc2f379d3ca.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/6aba18b7aac42ccd.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{b4b3fb5729bead7e.js → 6ea97c8dc9e30ea5.js} +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/74ea1a87751e93a3.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/910628c23329a773.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{c288964c4c00982a.js → b308a787e8cbc2a9.js} +3 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/bdb50889a1c1ab37.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/d0bf5ccba09917dd.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/e804a1fda2839550.js +1 -0
- package/dashboard/.next/standalone/dashboard/server.js +1 -1
- package/dist/api/routes/digest.d.ts +59 -0
- package/dist/api/routes/digest.js +305 -0
- package/dist/api/routes/memories.js +84 -15
- package/dist/api/routes/system.js +10 -2
- package/dist/api/visualization-server.js +2 -0
- package/dist/cli/doctor.d.ts +27 -0
- package/dist/cli/doctor.js +88 -0
- package/dist/cli/migrate-legacy.d.ts +28 -0
- package/dist/cli/migrate-legacy.js +291 -0
- package/dist/cloud/cli.js +2 -2
- package/dist/database/init.js +26 -1
- package/dist/index.js +8 -1
- package/dist/memory/backup.d.ts +19 -0
- package/dist/memory/backup.js +47 -0
- package/dist/memory/dedupe-runner.d.ts +33 -0
- package/dist/memory/dedupe-runner.js +103 -0
- package/dist/memory/fts.d.ts +26 -0
- package/dist/memory/fts.js +59 -0
- package/dist/memory/lifecycle.d.ts +83 -0
- package/dist/memory/lifecycle.js +274 -0
- package/dist/memory/links.d.ts +63 -0
- package/dist/memory/links.js +232 -0
- package/dist/memory/prune.d.ts +34 -0
- package/dist/memory/prune.js +76 -0
- package/dist/memory/search-recall.d.ts +48 -0
- package/dist/memory/search-recall.js +367 -0
- package/dist/memory/store.d.ts +6 -121
- package/dist/memory/store.js +45 -854
- package/dist/setup/claude-md.d.ts +1 -0
- package/dist/setup/deep-clean.d.ts +33 -0
- package/dist/setup/deep-clean.js +26 -0
- package/dist/setup/doctor.js +7 -2
- package/dist/setup/openclaw.js +13 -39
- package/dist/setup/settings-hooks.d.ts +1 -0
- package/dist/setup/settings-hooks.js +30 -5
- package/dist/setup/status.js +39 -0
- package/hooks/openclaw/cortex-memory/runtime.mjs +18 -4
- package/package.json +1 -1
- package/plugins/openclaw/dist/index.js +12 -6
- package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
- package/scripts/lib/auto-memory-config.mjs +45 -0
- package/scripts/lib/telemetry.mjs +58 -0
- package/scripts/lib/transcript-reader.mjs +123 -0
- package/scripts/postinstall.mjs +47 -1
- package/scripts/pre-compact-hook.mjs +76 -124
- package/scripts/session-end-hook.mjs +102 -97
- package/scripts/stop-hook.mjs +346 -116
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_785e068c._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c2b92077._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35c9f22e._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_836b4a04._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9770c429._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9dd626ed._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_e94d2da2._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_564ea5ae._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_lib_3f1490a1._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/079a5be036130e37.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1770a8ce7abb2437.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1a074f8ddc7cd385.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/24da99d1341bd573.css +0 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/2aa8afb655c1c2e5.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/302ad459a0e5c4ba.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/385ec610bad1acc5.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/4f57582c2d186438.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/52843253e4b833a5.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/7fca141efba9d353.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/8593e1796c9d043d.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/cbc2e6ffcad6e91c.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/fced7dd3c9874ed1.js +0 -1
- package/dashboard/.next/standalone/dashboard/node_modules/@img/colour/color.cjs +0 -1594
- package/dashboard/.next/standalone/dashboard/node_modules/@img/colour/index.cjs +0 -1
- package/dashboard/.next/standalone/dashboard/node_modules/@img/colour/package.json +0 -45
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linux-x64/package.json +0 -46
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
- package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/elf.js +0 -39
- package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/process.js +0 -24
- package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/package.json +0 -44
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/channel.js +0 -177
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/colour.js +0 -195
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/composite.js +0 -212
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/constructor.js +0 -499
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/index.js +0 -16
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/input.js +0 -809
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/is.js +0 -143
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/libvips.js +0 -207
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/operation.js +0 -1016
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/output.js +0 -1666
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/resize.js +0 -595
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/sharp.js +0 -121
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/utility.js +0 -291
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/package.json +0 -78
- package/dashboard/.next/standalone/dashboard/node_modules/sharp/package.json +0 -202
- package/dashboard/.next/standalone/node_modules/@img/colour/package.json +0 -45
- package/dashboard/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
- package/dashboard/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
- package/dashboard/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +0 -46
- package/dashboard/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
- package/dashboard/.next/standalone/node_modules/detect-libc/package.json +0 -44
- /package/dashboard/.next/standalone/dashboard/.next/static/{ZozFsMrOVzVLH6CQW3jPr → kiA_iEHG_1wWOEYFsD0Tj}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{ZozFsMrOVzVLH6CQW3jPr → kiA_iEHG_1wWOEYFsD0Tj}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{ZozFsMrOVzVLH6CQW3jPr → kiA_iEHG_1wWOEYFsD0Tj}/_ssgManifest.js +0 -0
package/scripts/stop-hook.mjs
CHANGED
|
@@ -1,163 +1,393 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* ShieldCortex — Stop Hook
|
|
4
|
+
* ShieldCortex — Stop Hook (sampling extractor)
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* to memory via the `remember` tool.
|
|
6
|
+
* Replaces the v4.x exit-2 "nudge Claude to call remember" behaviour with
|
|
7
|
+
* silent, sampled, server-side extraction:
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
* (
|
|
9
|
+
* - Counts assistant turns in the transcript.
|
|
10
|
+
* - Every Nth turn (default 10), runs the standard salience pipeline over
|
|
11
|
+
* the most recent window of conversation and saves any memories that
|
|
12
|
+
* clear the per-category threshold.
|
|
13
|
+
* - Always exits 0. Never blocks Claude from finishing its response.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* 2 = block stop (stderr tells Claude to use `remember`)
|
|
15
|
+
* The transcript reader is bounded by `autoMemory.stopHookWindowBytes`
|
|
16
|
+
* (default 256 KiB) to keep per-turn cost predictable.
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
|
-
import
|
|
19
|
+
import Database from 'better-sqlite3';
|
|
20
|
+
import { existsSync, mkdirSync, openSync, readSync, closeSync, statSync } from 'fs';
|
|
21
|
+
import { join } from 'path';
|
|
19
22
|
import { homedir } from 'os';
|
|
23
|
+
import { saveAutoExtractedMemory } from './lib/save-memory.mjs';
|
|
24
|
+
import { readTranscriptText } from './lib/transcript-reader.mjs';
|
|
25
|
+
import { getAutoMemoryConfig } from './lib/auto-memory-config.mjs';
|
|
26
|
+
import { recordHookInvocation } from './lib/telemetry.mjs';
|
|
20
27
|
|
|
21
|
-
// ====================
|
|
28
|
+
// ==================== DB ====================
|
|
22
29
|
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
'will use', 'opted for', 'settled on', 'agreed'
|
|
26
|
-
];
|
|
30
|
+
const NEW_DB_DIR = join(homedir(), '.shieldcortex');
|
|
31
|
+
const LEGACY_DB_DIR = join(homedir(), '.claude-cortex');
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
function getDbPath() {
|
|
34
|
+
const newPath = join(NEW_DB_DIR, 'memories.db');
|
|
35
|
+
const legacyPath = join(LEGACY_DB_DIR, 'memories.db');
|
|
36
|
+
if (existsSync(newPath) || !existsSync(legacyPath)) {
|
|
37
|
+
return { dir: NEW_DB_DIR, path: newPath };
|
|
38
|
+
}
|
|
39
|
+
return { dir: LEGACY_DB_DIR, path: legacyPath };
|
|
40
|
+
}
|
|
32
41
|
|
|
33
|
-
const
|
|
34
|
-
'learned that', 'discovered that', 'realized that', 'found out',
|
|
35
|
-
'turns out', 'TIL', 'figured out'
|
|
36
|
-
];
|
|
42
|
+
const { dir: DB_DIR, path: DB_PATH } = getDbPath();
|
|
37
43
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
// Memory limits (kept in sync with pre-compact)
|
|
45
|
+
const MAX_SHORT_TERM_MEMORIES = 100;
|
|
46
|
+
const MAX_LONG_TERM_MEMORIES = 1000;
|
|
47
|
+
const BASE_THRESHOLD = 0.35;
|
|
48
|
+
const MAX_AUTO_MEMORIES = 2;
|
|
49
|
+
|
|
50
|
+
const CATEGORY_EXTRACTION_THRESHOLDS = {
|
|
51
|
+
architecture: 0.38,
|
|
52
|
+
error: 0.40,
|
|
53
|
+
context: 0.42,
|
|
54
|
+
learning: 0.42,
|
|
55
|
+
pattern: 0.45,
|
|
56
|
+
preference: 0.48,
|
|
57
|
+
note: 0.52,
|
|
58
|
+
todo: 0.50,
|
|
59
|
+
relationship: 0.45,
|
|
60
|
+
custom: 0.45,
|
|
61
|
+
};
|
|
42
62
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
63
|
+
// ==================== PROJECT DETECTION ====================
|
|
64
|
+
|
|
65
|
+
const SKIP_DIRECTORIES = [
|
|
66
|
+
'src', 'lib', 'dist', 'build', 'out',
|
|
67
|
+
'node_modules', '.git', '.next', '.cache',
|
|
68
|
+
'test', 'tests', '__tests__', 'spec',
|
|
69
|
+
'bin', 'scripts', 'config', 'public', 'static',
|
|
46
70
|
];
|
|
47
71
|
|
|
48
|
-
|
|
49
|
-
|
|
72
|
+
function extractProjectFromPath(p) {
|
|
73
|
+
if (!p) return null;
|
|
74
|
+
const segments = p.split(/[/\\]/).filter(Boolean);
|
|
75
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
76
|
+
const segment = segments[i];
|
|
77
|
+
if (!SKIP_DIRECTORIES.includes(segment.toLowerCase())) {
|
|
78
|
+
if (segment.startsWith('.')) continue;
|
|
79
|
+
return segment;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ==================== SALIENCE (mirrors pre-compact) ====================
|
|
86
|
+
|
|
87
|
+
const ARCHITECTURE_KEYWORDS = ['architecture','design','pattern','structure','system','database','api','schema','model','framework','stack','microservice','monolith','serverless','infrastructure'];
|
|
88
|
+
const ERROR_KEYWORDS = ['error','bug','fix','issue','problem','crash','fail','exception','debug','resolve','solution','workaround'];
|
|
89
|
+
const PREFERENCE_KEYWORDS = ['prefer','always','never','style','convention','standard','like','want','should','must','require'];
|
|
90
|
+
const PATTERN_KEYWORDS = ['pattern','practice','approach','method','technique','implementation','strategy','algorithm','workflow'];
|
|
91
|
+
const DECISION_KEYWORDS = ['decided','decision','chose','chosen','selected','going with','will use','opted for','settled on','agreed'];
|
|
92
|
+
const LEARNING_KEYWORDS = ['learned','discovered','realized','found out','turns out','TIL','now know','understand now','figured out'];
|
|
93
|
+
const EMOTIONAL_MARKERS = ['important','critical','crucial','essential','key','finally','breakthrough','eureka','aha','got it','frustrating','annoying','tricky','remember'];
|
|
94
|
+
const CODE_REFERENCE_PATTERNS = [
|
|
95
|
+
/\b[A-Z][a-zA-Z]*\.[a-zA-Z]+\b/,
|
|
96
|
+
/\b[a-z_][a-zA-Z0-9_]*\.(ts|js|py|go|rs)\b/,
|
|
97
|
+
/`[^`]+`/,
|
|
98
|
+
/\b(function|class|interface|type|const|let|var)\s+\w+/i,
|
|
99
|
+
/\bline\s*\d+\b/i,
|
|
100
|
+
/\b(src|lib|app|components?)\/\S+/,
|
|
50
101
|
];
|
|
51
102
|
|
|
52
103
|
function detectKeywords(text, keywords) {
|
|
53
104
|
const lower = text.toLowerCase();
|
|
54
|
-
return keywords.some(
|
|
105
|
+
return keywords.some((k) => lower.includes(k.toLowerCase()));
|
|
55
106
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
107
|
+
function detectCodeReferences(c) {
|
|
108
|
+
return CODE_REFERENCE_PATTERNS.some((p) => p.test(c));
|
|
109
|
+
}
|
|
110
|
+
function detectExplicitRequest(t) {
|
|
111
|
+
const patterns = [
|
|
112
|
+
/\bremember\s+(this|that)\b/i, /\bdon'?t\s+forget\b/i, /\bkeep\s+(in\s+)?mind\b/i,
|
|
113
|
+
/\bnote\s+(this|that)\b/i, /\bsave\s+(this|that)\b/i, /\bimportant[:\s]/i,
|
|
114
|
+
/\bfor\s+future\s+reference\b/i,
|
|
115
|
+
];
|
|
116
|
+
return patterns.some((p) => p.test(t));
|
|
117
|
+
}
|
|
118
|
+
function calculateSalience(text) {
|
|
119
|
+
let score = 0.25;
|
|
120
|
+
if (detectExplicitRequest(text)) score += 0.5;
|
|
121
|
+
if (detectKeywords(text, ARCHITECTURE_KEYWORDS)) score += 0.4;
|
|
122
|
+
if (detectKeywords(text, ERROR_KEYWORDS)) score += 0.35;
|
|
123
|
+
if (detectKeywords(text, DECISION_KEYWORDS)) score += 0.35;
|
|
124
|
+
if (detectKeywords(text, LEARNING_KEYWORDS)) score += 0.3;
|
|
125
|
+
if (detectKeywords(text, PATTERN_KEYWORDS)) score += 0.25;
|
|
126
|
+
if (detectKeywords(text, PREFERENCE_KEYWORDS)) score += 0.25;
|
|
127
|
+
if (detectCodeReferences(text)) score += 0.15;
|
|
128
|
+
if (detectKeywords(text, EMOTIONAL_MARKERS)) score += 0.2;
|
|
129
|
+
return Math.min(1.0, score);
|
|
130
|
+
}
|
|
131
|
+
function suggestCategory(text) {
|
|
62
132
|
const lower = text.toLowerCase();
|
|
133
|
+
if (detectKeywords(lower, ARCHITECTURE_KEYWORDS)) return 'architecture';
|
|
134
|
+
if (detectKeywords(lower, ERROR_KEYWORDS)) return 'error';
|
|
135
|
+
if (detectKeywords(lower, DECISION_KEYWORDS)) return 'context';
|
|
136
|
+
if (detectKeywords(lower, LEARNING_KEYWORDS)) return 'learning';
|
|
137
|
+
if (detectKeywords(lower, PREFERENCE_KEYWORDS)) return 'preference';
|
|
138
|
+
if (detectKeywords(lower, PATTERN_KEYWORDS)) return 'pattern';
|
|
139
|
+
if (/\b(todo|fixme|hack|xxx)\b/i.test(lower)) return 'todo';
|
|
140
|
+
return 'note';
|
|
141
|
+
}
|
|
142
|
+
function extractTags(text, extractorName) {
|
|
143
|
+
const tags = new Set();
|
|
144
|
+
const hashtags = text.match(/#[a-zA-Z][a-zA-Z0-9_-]*/g);
|
|
145
|
+
if (hashtags) hashtags.forEach((t) => tags.add(t.slice(1).toLowerCase()));
|
|
146
|
+
['react','vue','angular','node','python','typescript','javascript','api','database','sql','mongodb','postgresql','mysql','docker','kubernetes','aws','git','testing','auth','security']
|
|
147
|
+
.forEach((t) => { if (text.toLowerCase().includes(t)) tags.add(t); });
|
|
148
|
+
tags.add('auto-extracted');
|
|
149
|
+
tags.add('source:stop-hook');
|
|
150
|
+
if (extractorName) tags.add(`source:${extractorName}`);
|
|
151
|
+
return Array.from(tags).slice(0, 12);
|
|
152
|
+
}
|
|
63
153
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
154
|
+
// ==================== EXTRACTORS ====================
|
|
155
|
+
|
|
156
|
+
function extractMemorableSegments(text) {
|
|
157
|
+
const segments = [];
|
|
158
|
+
const extractors = [
|
|
159
|
+
{ name: 'decision', titlePrefix: 'Decision: ', patterns: [
|
|
160
|
+
/(?:we\s+)?decided\s+(?:to\s+)?(.{15,200})/gi,
|
|
161
|
+
/(?:going|went)\s+with\s+(.{15,150})/gi,
|
|
162
|
+
/(?:chose|chosen|selected)\s+(.{15,150})/gi,
|
|
163
|
+
/the\s+(?:approach|solution|fix)\s+(?:is|was)\s+(.{15,200})/gi,
|
|
164
|
+
/(?:using|will\s+use)\s+(.{15,150})/gi,
|
|
165
|
+
/(?:opted\s+for|settled\s+on)\s+(.{15,150})/gi,
|
|
166
|
+
]},
|
|
167
|
+
{ name: 'error-fix', titlePrefix: 'Fix: ', patterns: [
|
|
168
|
+
/(?:fixed|solved|resolved)\s+(?:by\s+)?(.{15,200})/gi,
|
|
169
|
+
/the\s+(?:fix|solution|workaround)\s+(?:is|was)\s+(.{15,200})/gi,
|
|
170
|
+
/(?:root\s+cause|issue)\s+(?:is|was)\s+(.{15,200})/gi,
|
|
171
|
+
/(?:error|bug)\s+(?:was\s+)?caused\s+by\s+(.{15,200})/gi,
|
|
172
|
+
]},
|
|
173
|
+
{ name: 'learning', titlePrefix: 'Learned: ', patterns: [
|
|
174
|
+
/(?:learned|discovered|realized|found\s+out)\s+(?:that\s+)?(.{15,200})/gi,
|
|
175
|
+
/turns\s+out\s+(?:that\s+)?(.{15,200})/gi,
|
|
176
|
+
/(?:figured\s+out|worked\s+out)\s+(.{15,150})/gi,
|
|
177
|
+
]},
|
|
178
|
+
{ name: 'preference', titlePrefix: 'Preference: ', patterns: [
|
|
179
|
+
/(?:always|never)\s+(.{10,150})/gi,
|
|
180
|
+
/(?:prefer|want)\s+to\s+(.{10,150})/gi,
|
|
181
|
+
]},
|
|
182
|
+
];
|
|
183
|
+
for (const ex of extractors) {
|
|
184
|
+
for (const p of ex.patterns) {
|
|
185
|
+
let m;
|
|
186
|
+
while ((m = p.exec(text)) !== null) {
|
|
187
|
+
const content = m[1].trim();
|
|
188
|
+
if (content.length >= 20) {
|
|
189
|
+
const titleContent = content.slice(0, 50).replace(/\s+/g, ' ').trim();
|
|
190
|
+
const title = ex.titlePrefix + (titleContent.length < 50 ? titleContent : titleContent + '...');
|
|
191
|
+
segments.push({ title, content: content.slice(0, 500), extractorType: ex.name });
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
78
195
|
}
|
|
79
|
-
|
|
80
|
-
|
|
196
|
+
return segments;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function calculateOverlap(t1, t2) {
|
|
200
|
+
const w1 = new Set(t1.toLowerCase().split(/\s+/));
|
|
201
|
+
const w2 = new Set(t2.toLowerCase().split(/\s+/));
|
|
202
|
+
const inter = new Set([...w1].filter((w) => w2.has(w)));
|
|
203
|
+
const union = new Set([...w1, ...w2]);
|
|
204
|
+
return inter.size / Math.max(1, union.size);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
function processSegments(segments, dynamicThreshold) {
|
|
208
|
+
const unique = [];
|
|
209
|
+
for (const seg of segments) {
|
|
210
|
+
if (unique.some((u) => calculateOverlap(u.content, seg.content) > 0.8)) continue;
|
|
211
|
+
const text = seg.title + ' ' + seg.content;
|
|
212
|
+
unique.push({
|
|
213
|
+
...seg,
|
|
214
|
+
salience: calculateSalience(text),
|
|
215
|
+
category: suggestCategory(text),
|
|
216
|
+
tags: extractTags(text, seg.extractorType),
|
|
217
|
+
});
|
|
81
218
|
}
|
|
219
|
+
unique.sort((a, b) => b.salience - a.salience);
|
|
220
|
+
const filtered = unique.filter((s) => {
|
|
221
|
+
const cat = CATEGORY_EXTRACTION_THRESHOLDS[s.category] ?? BASE_THRESHOLD;
|
|
222
|
+
return s.salience >= Math.min(cat, dynamicThreshold);
|
|
223
|
+
});
|
|
224
|
+
return filtered.slice(0, MAX_AUTO_MEMORIES);
|
|
225
|
+
}
|
|
82
226
|
|
|
83
|
-
|
|
227
|
+
function getMemoryStats(db) {
|
|
228
|
+
try {
|
|
229
|
+
return db.prepare(`
|
|
230
|
+
SELECT
|
|
231
|
+
SUM(CASE WHEN type='short_term' THEN 1 ELSE 0 END) AS shortTerm,
|
|
232
|
+
SUM(CASE WHEN type='long_term' THEN 1 ELSE 0 END) AS longTerm
|
|
233
|
+
FROM memories
|
|
234
|
+
`).get() || { shortTerm: 0, longTerm: 0 };
|
|
235
|
+
} catch { return { shortTerm: 0, longTerm: 0 }; }
|
|
84
236
|
}
|
|
85
237
|
|
|
238
|
+
function getDynamicThreshold(count, max) {
|
|
239
|
+
const f = count / max;
|
|
240
|
+
if (f > 0.8) return 0.50;
|
|
241
|
+
if (f > 0.6) return 0.42;
|
|
242
|
+
if (f > 0.4) return 0.35;
|
|
243
|
+
if (f > 0.2) return 0.30;
|
|
244
|
+
return 0.25;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// ==================== TURN COUNT (cheap, partial-read) ====================
|
|
248
|
+
|
|
86
249
|
/**
|
|
87
|
-
*
|
|
250
|
+
* Count assistant turns in the last `windowBytes` of the transcript.
|
|
251
|
+
* Doesn't parse — just counts occurrences of the assistant role marker.
|
|
252
|
+
* That's a very rough approximation but it's enough for sample-every-N
|
|
253
|
+
* decisions and an order of magnitude cheaper than full JSON parse.
|
|
88
254
|
*/
|
|
89
|
-
function
|
|
90
|
-
if (!transcriptPath) return
|
|
91
|
-
|
|
255
|
+
function countAssistantTurns(transcriptPath, windowBytes) {
|
|
256
|
+
if (!transcriptPath) return 0;
|
|
92
257
|
const resolved = transcriptPath.replace(/^~/, homedir());
|
|
93
|
-
if (!existsSync(resolved)) return
|
|
94
|
-
|
|
258
|
+
if (!existsSync(resolved)) return 0;
|
|
95
259
|
try {
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return Array.isArray(msgContent)
|
|
107
|
-
? msgContent.filter(c => c.type === 'text').map(c => c.text).join('\n')
|
|
108
|
-
: msgContent;
|
|
109
|
-
}
|
|
110
|
-
} catch {
|
|
111
|
-
// Skip invalid lines
|
|
112
|
-
}
|
|
260
|
+
const stat = statSync(resolved);
|
|
261
|
+
const bytes = Math.min(stat.size, windowBytes);
|
|
262
|
+
const fd = openSync(resolved, 'r');
|
|
263
|
+
let raw;
|
|
264
|
+
try {
|
|
265
|
+
const buf = Buffer.alloc(bytes);
|
|
266
|
+
readSync(fd, buf, 0, bytes, stat.size - bytes);
|
|
267
|
+
raw = buf.toString('utf-8');
|
|
268
|
+
} finally {
|
|
269
|
+
closeSync(fd);
|
|
113
270
|
}
|
|
114
|
-
|
|
271
|
+
// Each assistant message line carries `"role":"assistant"` (or `"type":"assistant"`).
|
|
272
|
+
// Count occurrences of either marker — close enough for sampling decisions.
|
|
273
|
+
return (raw.match(/"role":"assistant"|"type":"assistant"/g) || []).length;
|
|
115
274
|
} catch {
|
|
116
|
-
return
|
|
275
|
+
return 0;
|
|
117
276
|
}
|
|
118
277
|
}
|
|
119
278
|
|
|
120
279
|
// ==================== MAIN ====================
|
|
121
280
|
|
|
122
|
-
|
|
123
|
-
|
|
281
|
+
let input = '';
|
|
282
|
+
process.stdin.setEncoding('utf8');
|
|
283
|
+
process.stdin.on('readable', () => {
|
|
284
|
+
let chunk;
|
|
285
|
+
while ((chunk = process.stdin.read()) !== null) input += chunk;
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
process.stdin.on('end', () => {
|
|
289
|
+
const startedAt = Date.now();
|
|
290
|
+
let db = null;
|
|
291
|
+
let extractedCount = 0;
|
|
292
|
+
let bytesRead = 0;
|
|
293
|
+
let notes = null;
|
|
294
|
+
|
|
124
295
|
try {
|
|
125
|
-
|
|
126
|
-
hookData = JSON.parse(
|
|
127
|
-
} catch {
|
|
128
|
-
// No stdin or invalid JSON — allow stop
|
|
129
|
-
process.exit(0);
|
|
130
|
-
}
|
|
296
|
+
let hookData = {};
|
|
297
|
+
try { hookData = JSON.parse(input || '{}'); } catch { /* allow empty */ }
|
|
131
298
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
299
|
+
if (hookData.stop_hook_active === true) {
|
|
300
|
+
// Loop prevention — never re-engage from an already-engaged stop hook.
|
|
301
|
+
process.exit(0);
|
|
302
|
+
}
|
|
137
303
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
304
|
+
const autoMemConfig = getAutoMemoryConfig();
|
|
305
|
+
if (!autoMemConfig.enableStop) {
|
|
306
|
+
// Opt-in by config (or by `--with-stop-hook` install flag, which only
|
|
307
|
+
// wires the hook in settings.json — config still gates execution).
|
|
308
|
+
process.exit(0);
|
|
309
|
+
}
|
|
144
310
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if (description) {
|
|
148
|
-
// Block stop — tell Claude to use remember
|
|
149
|
-
process.stderr.write(
|
|
150
|
-
`Use the remember tool to save what just happened: ${description}. ` +
|
|
151
|
-
`Then continue with your response.`
|
|
152
|
-
);
|
|
153
|
-
process.exit(2);
|
|
154
|
-
}
|
|
311
|
+
const samplingTurns = autoMemConfig.stopHookSamplingTurns;
|
|
312
|
+
const windowBytes = autoMemConfig.stopHookWindowBytes;
|
|
155
313
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
314
|
+
const turnCount = countAssistantTurns(hookData.transcript_path, windowBytes);
|
|
315
|
+
if (turnCount === 0 || turnCount % samplingTurns !== 0) {
|
|
316
|
+
// Off-sample. Exit silently — but record the firing so telemetry shows
|
|
317
|
+
// the hook is actually wired and active.
|
|
318
|
+
if (existsSync(DB_PATH)) {
|
|
319
|
+
try {
|
|
320
|
+
const tdb = new Database(DB_PATH, { timeout: 1500 });
|
|
321
|
+
recordHookInvocation(tdb, {
|
|
322
|
+
hookName: 'stop',
|
|
323
|
+
exitCode: 0,
|
|
324
|
+
durationMs: Date.now() - startedAt,
|
|
325
|
+
memoriesExtracted: 0,
|
|
326
|
+
transcriptBytes: 0,
|
|
327
|
+
notes: `off-sample turn=${turnCount}`,
|
|
328
|
+
});
|
|
329
|
+
tdb.close();
|
|
330
|
+
} catch { /* ignore */ }
|
|
331
|
+
}
|
|
332
|
+
process.exit(0);
|
|
333
|
+
}
|
|
159
334
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
335
|
+
const project = extractProjectFromPath(hookData.cwd);
|
|
336
|
+
const transcriptOut = readTranscriptText(hookData.transcript_path, {
|
|
337
|
+
maxBytes: windowBytes,
|
|
338
|
+
maxLines: autoMemConfig.maxTranscriptLines,
|
|
339
|
+
keepSlashCommandProse: autoMemConfig.keepSlashCommandProse,
|
|
340
|
+
});
|
|
341
|
+
bytesRead = transcriptOut.bytesRead;
|
|
342
|
+
|
|
343
|
+
if (!transcriptOut.text || transcriptOut.text.length < 100) {
|
|
344
|
+
notes = 'no-content';
|
|
345
|
+
if (existsSync(DB_PATH)) {
|
|
346
|
+
try {
|
|
347
|
+
db = new Database(DB_PATH, { timeout: 1500 });
|
|
348
|
+
} catch { db = null; }
|
|
349
|
+
}
|
|
350
|
+
} else {
|
|
351
|
+
if (!existsSync(DB_DIR)) mkdirSync(DB_DIR, { recursive: true });
|
|
352
|
+
if (!existsSync(DB_PATH)) {
|
|
353
|
+
notes = 'no-database';
|
|
354
|
+
} else {
|
|
355
|
+
db = new Database(DB_PATH, { timeout: 5000 });
|
|
356
|
+
const stats = getMemoryStats(db);
|
|
357
|
+
const total = (stats.shortTerm || 0) + (stats.longTerm || 0);
|
|
358
|
+
const max = MAX_SHORT_TERM_MEMORIES + MAX_LONG_TERM_MEMORIES;
|
|
359
|
+
const dyn = getDynamicThreshold(total, max);
|
|
360
|
+
|
|
361
|
+
const segments = extractMemorableSegments(transcriptOut.text);
|
|
362
|
+
const processed = processSegments(segments, dyn);
|
|
363
|
+
|
|
364
|
+
for (const memory of processed) {
|
|
365
|
+
try {
|
|
366
|
+
saveAutoExtractedMemory(db, memory, project);
|
|
367
|
+
extractedCount++;
|
|
368
|
+
console.error(`[stop] Saved: ${memory.title} (salience: ${memory.salience.toFixed(2)}, category: ${memory.category})`);
|
|
369
|
+
} catch (err) {
|
|
370
|
+
console.error(`[stop] Failed to save "${memory.title}": ${err.message}`);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
console.error(`[stop] Sampled turn=${turnCount}: ${extractedCount} memories extracted`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
} catch (err) {
|
|
377
|
+
notes = `error: ${err.message}`;
|
|
378
|
+
console.error(`[stop] Error: ${err.message}`);
|
|
379
|
+
} finally {
|
|
380
|
+
if (db) {
|
|
381
|
+
recordHookInvocation(db, {
|
|
382
|
+
hookName: 'stop',
|
|
383
|
+
exitCode: 0,
|
|
384
|
+
durationMs: Date.now() - startedAt,
|
|
385
|
+
memoriesExtracted: extractedCount,
|
|
386
|
+
transcriptBytes: bytesRead,
|
|
387
|
+
notes,
|
|
388
|
+
});
|
|
389
|
+
try { db.close(); } catch { /* ignore */ }
|
|
390
|
+
}
|
|
391
|
+
process.exit(0);
|
|
392
|
+
}
|
|
163
393
|
});
|
package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_785e068c._.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[15896,2655,a=>{"use strict";var b={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>clearTimeout(a),setInterval:(a,b)=>setInterval(a,b),clearInterval:a=>clearInterval(a)},c=new class{#a=b;#b=!1;setTimeoutProvider(a){this.#a=a}setTimeout(a,b){return this.#a.setTimeout(a,b)}clearTimeout(a){this.#a.clearTimeout(a)}setInterval(a,b){return this.#a.setInterval(a,b)}clearInterval(a){this.#a.clearInterval(a)}};function d(a){setTimeout(a,0)}function e(){}function f(a,b){return"function"==typeof a?a(b):a}function g(a){return"number"==typeof a&&a>=0&&a!==1/0}function h(a,b){return Math.max(a+(b||0)-Date.now(),0)}function i(a,b){return"function"==typeof a?a(b):a}function j(a,b){return"function"==typeof a?a(b):a}function k(a,b){let{type:c="all",exact:d,fetchStatus:e,predicate:f,queryKey:g,stale:h}=a;if(g){if(d){if(b.queryHash!==m(g,b.options))return!1}else if(!o(b.queryKey,g))return!1}if("all"!==c){let a=b.isActive();if("active"===c&&!a||"inactive"===c&&a)return!1}return("boolean"!=typeof h||b.isStale()===h)&&(!e||e===b.state.fetchStatus)&&(!f||!!f(b))}function l(a,b){let{exact:c,status:d,predicate:e,mutationKey:f}=a;if(f){if(!b.options.mutationKey)return!1;if(c){if(n(b.options.mutationKey)!==n(f))return!1}else if(!o(b.options.mutationKey,f))return!1}return(!d||b.state.status===d)&&(!e||!!e(b))}function m(a,b){return(b?.queryKeyHashFn||n)(a)}function n(a){return JSON.stringify(a,(a,b)=>s(b)?Object.keys(b).sort().reduce((a,c)=>(a[c]=b[c],a),{}):b)}function o(a,b){return a===b||typeof a==typeof b&&!!a&&!!b&&"object"==typeof a&&"object"==typeof b&&Object.keys(b).every(c=>o(a[c],b[c]))}a.s(["systemSetTimeoutZero",()=>d,"timeoutManager",()=>c],2655);var p=Object.prototype.hasOwnProperty;function q(a,b){if(!b||Object.keys(a).length!==Object.keys(b).length)return!1;for(let c in a)if(a[c]!==b[c])return!1;return!0}function r(a){return Array.isArray(a)&&a.length===Object.keys(a).length}function s(a){if(!t(a))return!1;let b=a.constructor;if(void 0===b)return!0;let c=b.prototype;return!!t(c)&&!!c.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(a)===Object.prototype}function t(a){return"[object Object]"===Object.prototype.toString.call(a)}function u(a){return new Promise(b=>{c.setTimeout(b,a)})}function v(a,b,c){return"function"==typeof c.structuralSharing?c.structuralSharing(a,b):!1!==c.structuralSharing?function a(b,c,d=0){if(b===c)return b;if(d>500)return c;let e=r(b)&&r(c);if(!e&&!(s(b)&&s(c)))return c;let f=(e?b:Object.keys(b)).length,g=e?c:Object.keys(c),h=g.length,i=e?Array(h):{},j=0;for(let k=0;k<h;k++){let h=e?k:g[k],l=b[h],m=c[h];if(l===m){i[h]=l,(e?k<f:p.call(b,h))&&j++;continue}if(null===l||null===m||"object"!=typeof l||"object"!=typeof m){i[h]=m;continue}let n=a(l,m,d+1);i[h]=n,n===l&&j++}return f===h&&j===f?b:i}(a,b):b}function w(a,b,c=0){let d=[...a,b];return c&&d.length>c?d.slice(1):d}function x(a,b,c=0){let d=[b,...a];return c&&d.length>c?d.slice(0,-1):d}var y=Symbol();function z(a,b){return!a.queryFn&&b?.initialPromise?()=>b.initialPromise:a.queryFn&&a.queryFn!==y?a.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${a.queryHash}'`))}function A(a,b){return"function"==typeof a?a(...b):!!a}function B(a,b,c){let d,e=!1;return Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(d??=b(),e||(e=!0,d.aborted?c():d.addEventListener("abort",c,{once:!0})),d)}),a}a.s(["addConsumeAwareSignal",()=>B,"addToEnd",()=>w,"addToStart",()=>x,"ensureQueryFn",()=>z,"functionalUpdate",()=>f,"hashKey",()=>n,"hashQueryKeyByOptions",()=>m,"isServer",()=>!0,"isValidTimeout",()=>g,"matchMutation",()=>l,"matchQuery",()=>k,"noop",()=>e,"partialMatchKey",()=>o,"replaceData",()=>v,"resolveEnabled",()=>j,"resolveStaleTime",()=>i,"shallowEqualObjects",()=>q,"shouldThrowError",()=>A,"skipToken",()=>y,"sleep",()=>u,"timeUntilStale",()=>h],15896)},98416,a=>{"use strict";let b,c,d,e,f,g;var h=a.i(2655).systemSetTimeoutZero,i=(b=[],c=0,d=a=>{a()},e=a=>{a()},f=h,{batch:a=>{let g;c++;try{g=a()}finally{let a;--c||(a=b,b=[],a.length&&f(()=>{e(()=>{a.forEach(a=>{d(a)})})}))}return g},batchCalls:a=>(...b)=>{g(()=>{a(...b)})},schedule:g=a=>{c?b.push(a):f(()=>{d(a)})},setNotifyFunction:a=>{d=a},setBatchNotifyFunction:a=>{e=a},setScheduler:a=>{f=a}});a.s(["notifyManager",()=>i])},16347,a=>{"use strict";var b=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(a){return this.listeners.add(a),this.onSubscribe(),()=>{this.listeners.delete(a),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};a.s(["Subscribable",()=>b])},7903,a=>{"use strict";var b=a.i(16347),c=a.i(15896),d=new class extends b.Subscribable{#c;#d;#e;constructor(){super(),this.#e=a=>{if(!c.isServer&&window.addEventListener){let b=()=>a();return window.addEventListener("visibilitychange",b,!1),()=>{window.removeEventListener("visibilitychange",b)}}}}onSubscribe(){this.#d||this.setEventListener(this.#e)}onUnsubscribe(){this.hasListeners()||(this.#d?.(),this.#d=void 0)}setEventListener(a){this.#e=a,this.#d?.(),this.#d=a(a=>{"boolean"==typeof a?this.setFocused(a):this.onFocus()})}setFocused(a){this.#c!==a&&(this.#c=a,this.onFocus())}onFocus(){let a=this.isFocused();this.listeners.forEach(b=>{b(a)})}isFocused(){return"boolean"==typeof this.#c?this.#c:globalThis.document?.visibilityState!=="hidden"}};a.s(["focusManager",()=>d])},30112,59643,60087,46674,a=>{"use strict";var b=a.i(15896),c=a.i(98416),d=a.i(7903),e=a.i(16347),f=new class extends e.Subscribable{#f=!0;#d;#e;constructor(){super(),this.#e=a=>{if(!b.isServer&&window.addEventListener){let b=()=>a(!0),c=()=>a(!1);return window.addEventListener("online",b,!1),window.addEventListener("offline",c,!1),()=>{window.removeEventListener("online",b),window.removeEventListener("offline",c)}}}}onSubscribe(){this.#d||this.setEventListener(this.#e)}onUnsubscribe(){this.hasListeners()||(this.#d?.(),this.#d=void 0)}setEventListener(a){this.#e=a,this.#d?.(),this.#d=a(this.setOnline.bind(this))}setOnline(a){this.#f!==a&&(this.#f=a,this.listeners.forEach(b=>{b(a)}))}isOnline(){return this.#f}};function g(){let a,b,c=new Promise((c,d)=>{a=c,b=d});function d(a){Object.assign(c,a),delete c.resolve,delete c.reject}return c.status="pending",c.catch(()=>{}),c.resolve=b=>{d({status:"fulfilled",value:b}),a(b)},c.reject=a=>{d({status:"rejected",reason:a}),b(a)},c}function h(a){return Math.min(1e3*2**a,3e4)}function i(a){return(a??"online")!=="online"||f.isOnline()}a.s(["onlineManager",()=>f],59643),a.s(["pendingThenable",()=>g],60087);var j=class extends Error{constructor(a){super("CancelledError"),this.revert=a?.revert,this.silent=a?.silent}};function k(a){let c,e=!1,k=0,l=g(),m=()=>d.focusManager.isFocused()&&("always"===a.networkMode||f.isOnline())&&a.canRun(),n=()=>i(a.networkMode)&&a.canRun(),o=a=>{"pending"===l.status&&(c?.(),l.resolve(a))},p=a=>{"pending"===l.status&&(c?.(),l.reject(a))},q=()=>new Promise(b=>{c=a=>{("pending"!==l.status||m())&&b(a)},a.onPause?.()}).then(()=>{c=void 0,"pending"===l.status&&a.onContinue?.()}),r=()=>{let c;if("pending"!==l.status)return;let d=0===k?a.initialPromise:void 0;try{c=d??a.fn()}catch(a){c=Promise.reject(a)}Promise.resolve(c).then(o).catch(c=>{if("pending"!==l.status)return;let d=a.retry??3*!b.isServer,f=a.retryDelay??h,g="function"==typeof f?f(k,c):f,i=!0===d||"number"==typeof d&&k<d||"function"==typeof d&&d(k,c);e||!i?p(c):(k++,a.onFail?.(k,c),(0,b.sleep)(g).then(()=>m()?void 0:q()).then(()=>{e?p(c):r()}))})};return{promise:l,status:()=>l.status,cancel:b=>{if("pending"===l.status){let c=new j(b);p(c),a.onCancel?.(c)}},continue:()=>(c?.(),l),cancelRetry:()=>{e=!0},continueRetry:()=>{e=!1},canStart:n,start:()=>(n()?r():q().then(r),l)}}var l=a.i(2655),m=class{#g;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,b.isValidTimeout)(this.gcTime)&&(this.#g=l.timeoutManager.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(a){this.gcTime=Math.max(this.gcTime||0,a??(b.isServer?1/0:3e5))}clearGcTimeout(){this.#g&&(l.timeoutManager.clearTimeout(this.#g),this.#g=void 0)}},n=class extends m{#h;#i;#j;#k;#l;#m;#n;constructor(a){super(),this.#n=!1,this.#m=a.defaultOptions,this.setOptions(a.options),this.observers=[],this.#k=a.client,this.#j=this.#k.getQueryCache(),this.queryKey=a.queryKey,this.queryHash=a.queryHash,this.#h=q(this.options),this.state=a.state??this.#h,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#l?.promise}setOptions(a){if(this.options={...this.#m,...a},this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let a=q(this.options);void 0!==a.data&&(this.setState(p(a.data,a.dataUpdatedAt)),this.#h=a)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#j.remove(this)}setData(a,c){let d=(0,b.replaceData)(this.state.data,a,this.options);return this.#o({data:d,type:"success",dataUpdatedAt:c?.updatedAt,manual:c?.manual}),d}setState(a,b){this.#o({type:"setState",state:a,setStateOptions:b})}cancel(a){let c=this.#l?.promise;return this.#l?.cancel(a),c?c.then(b.noop).catch(b.noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#h)}isActive(){return this.observers.some(a=>!1!==(0,b.resolveEnabled)(a.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===b.skipToken||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0&&this.observers.some(a=>"static"===(0,b.resolveStaleTime)(a.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(a=>a.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(a=0){return void 0===this.state.data||"static"!==a&&(!!this.state.isInvalidated||!(0,b.timeUntilStale)(this.state.dataUpdatedAt,a))}onFocus(){let a=this.observers.find(a=>a.shouldFetchOnWindowFocus());a?.refetch({cancelRefetch:!1}),this.#l?.continue()}onOnline(){let a=this.observers.find(a=>a.shouldFetchOnReconnect());a?.refetch({cancelRefetch:!1}),this.#l?.continue()}addObserver(a){this.observers.includes(a)||(this.observers.push(a),this.clearGcTimeout(),this.#j.notify({type:"observerAdded",query:this,observer:a}))}removeObserver(a){this.observers.includes(a)&&(this.observers=this.observers.filter(b=>b!==a),this.observers.length||(this.#l&&(this.#n?this.#l.cancel({revert:!0}):this.#l.cancelRetry()),this.scheduleGc()),this.#j.notify({type:"observerRemoved",query:this,observer:a}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}async fetch(a,c){let d;if("idle"!==this.state.fetchStatus&&this.#l?.status()!=="rejected"){if(void 0!==this.state.data&&c?.cancelRefetch)this.cancel({silent:!0});else if(this.#l)return this.#l.continueRetry(),this.#l.promise}if(a&&this.setOptions(a),!this.options.queryFn){let a=this.observers.find(a=>a.options.queryFn);a&&this.setOptions(a.options)}let e=new AbortController,f=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(this.#n=!0,e.signal)})},g=()=>{let a,d=(0,b.ensureQueryFn)(this.options,c),e=(f(a={client:this.#k,queryKey:this.queryKey,meta:this.meta}),a);return(this.#n=!1,this.options.persister)?this.options.persister(d,e,this):d(e)},h=(f(d={fetchOptions:c,options:this.options,queryKey:this.queryKey,client:this.#k,state:this.state,fetchFn:g}),d);this.options.behavior?.onFetch(h,this),this.#i=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==h.fetchOptions?.meta)&&this.#o({type:"fetch",meta:h.fetchOptions?.meta}),this.#l=k({initialPromise:c?.initialPromise,fn:h.fetchFn,onCancel:a=>{a instanceof j&&a.revert&&this.setState({...this.#i,fetchStatus:"idle"}),e.abort()},onFail:(a,b)=>{this.#o({type:"failed",failureCount:a,error:b})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:h.options.retry,retryDelay:h.options.retryDelay,networkMode:h.options.networkMode,canRun:()=>!0});try{let a=await this.#l.start();if(void 0===a)throw Error(`${this.queryHash} data is undefined`);return this.setData(a),this.#j.config.onSuccess?.(a,this),this.#j.config.onSettled?.(a,this.state.error,this),a}catch(a){if(a instanceof j){if(a.silent)return this.#l.promise;else if(a.revert){if(void 0===this.state.data)throw a;return this.state.data}}throw this.#o({type:"error",error:a}),this.#j.config.onError?.(a,this),this.#j.config.onSettled?.(this.state.data,a,this),a}finally{this.scheduleGc()}}#o(a){let b=b=>{switch(a.type){case"failed":return{...b,fetchFailureCount:a.failureCount,fetchFailureReason:a.error};case"pause":return{...b,fetchStatus:"paused"};case"continue":return{...b,fetchStatus:"fetching"};case"fetch":return{...b,...o(b.data,this.options),fetchMeta:a.meta??null};case"success":let c={...b,...p(a.data,a.dataUpdatedAt),dataUpdateCount:b.dataUpdateCount+1,...!a.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#i=a.manual?c:void 0,c;case"error":let d=a.error;return{...b,error:d,errorUpdateCount:b.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:b.fetchFailureCount+1,fetchFailureReason:d,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...b,isInvalidated:!0};case"setState":return{...b,...a.state}}};this.state=b(this.state),c.notifyManager.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),this.#j.notify({query:this,type:"updated",action:a})})}};function o(a,b){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:i(b.networkMode)?"fetching":"paused",...void 0===a&&{error:null,status:"pending"}}}function p(a,b){return{data:a,dataUpdatedAt:b??Date.now(),error:null,isInvalidated:!1,status:"success"}}function q(a){let b="function"==typeof a.initialData?a.initialData():a.initialData,c=void 0!==b,d=c?"function"==typeof a.initialDataUpdatedAt?a.initialDataUpdatedAt():a.initialDataUpdatedAt:0;return{data:b,dataUpdateCount:0,dataUpdatedAt:c?d??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:c?"success":"pending",fetchStatus:"idle"}}a.s(["Query",()=>n,"fetchState",()=>o],30112);var r=class extends m{#k;#p;#q;#l;constructor(a){super(),this.#k=a.client,this.mutationId=a.mutationId,this.#q=a.mutationCache,this.#p=[],this.state=a.state||s(),this.setOptions(a.options),this.scheduleGc()}setOptions(a){this.options=a,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(a){this.#p.includes(a)||(this.#p.push(a),this.clearGcTimeout(),this.#q.notify({type:"observerAdded",mutation:this,observer:a}))}removeObserver(a){this.#p=this.#p.filter(b=>b!==a),this.scheduleGc(),this.#q.notify({type:"observerRemoved",mutation:this,observer:a})}optionalRemove(){this.#p.length||("pending"===this.state.status?this.scheduleGc():this.#q.remove(this))}continue(){return this.#l?.continue()??this.execute(this.state.variables)}async execute(a){let b=()=>{this.#o({type:"continue"})},c={client:this.#k,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#l=k({fn:()=>this.options.mutationFn?this.options.mutationFn(a,c):Promise.reject(Error("No mutationFn found")),onFail:(a,b)=>{this.#o({type:"failed",failureCount:a,error:b})},onPause:()=>{this.#o({type:"pause"})},onContinue:b,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#q.canRun(this)});let d="pending"===this.state.status,e=!this.#l.canStart();try{if(d)b();else{this.#o({type:"pending",variables:a,isPaused:e}),await this.#q.config.onMutate?.(a,this,c);let b=await this.options.onMutate?.(a,c);b!==this.state.context&&this.#o({type:"pending",context:b,variables:a,isPaused:e})}let f=await this.#l.start();return await this.#q.config.onSuccess?.(f,a,this.state.context,this,c),await this.options.onSuccess?.(f,a,this.state.context,c),await this.#q.config.onSettled?.(f,null,this.state.variables,this.state.context,this,c),await this.options.onSettled?.(f,null,a,this.state.context,c),this.#o({type:"success",data:f}),f}catch(b){try{await this.#q.config.onError?.(b,a,this.state.context,this,c)}catch(a){Promise.reject(a)}try{await this.options.onError?.(b,a,this.state.context,c)}catch(a){Promise.reject(a)}try{await this.#q.config.onSettled?.(void 0,b,this.state.variables,this.state.context,this,c)}catch(a){Promise.reject(a)}try{await this.options.onSettled?.(void 0,b,a,this.state.context,c)}catch(a){Promise.reject(a)}throw this.#o({type:"error",error:b}),b}finally{this.#q.runNext(this)}}#o(a){this.state=(b=>{switch(a.type){case"failed":return{...b,failureCount:a.failureCount,failureReason:a.error};case"pause":return{...b,isPaused:!0};case"continue":return{...b,isPaused:!1};case"pending":return{...b,context:a.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:a.isPaused,status:"pending",variables:a.variables,submittedAt:Date.now()};case"success":return{...b,data:a.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...b,data:void 0,error:a.error,failureCount:b.failureCount+1,failureReason:a.error,isPaused:!1,status:"error"}}})(this.state),c.notifyManager.batch(()=>{this.#p.forEach(b=>{b.onMutationUpdate(a)}),this.#q.notify({mutation:this,type:"updated",action:a})})}};function s(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}a.s(["Mutation",()=>r,"getDefaultState",()=>s],46674)},14220,a=>{"use strict";var b=a.i(98419),c=a.i(16306),d=b.createContext(void 0),e=a=>{let c=b.useContext(d);if(a)return a;if(!c)throw Error("No QueryClient set, use QueryClientProvider to set one");return c},f=({client:a,children:e})=>(b.useEffect(()=>(a.mount(),()=>{a.unmount()}),[a]),(0,c.jsx)(d.Provider,{value:a,children:e}));a.s(["QueryClientProvider",()=>f,"useQueryClient",()=>e])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=9f1d4_%40tanstack_785e068c._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[90382,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored["react-ssr"].ReactServerDOMTurbopackClient},53731,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored.contexts.HooksClientContext},69136,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored.contexts.ServerInsertedHtml},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},54935,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored.contexts.AppRouterContext},18780,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored["react-ssr"].ReactDOM},9315,a=>{"use strict";var b=a.i(98419),c=a.i(14220),d=a.i(86044);let e=process.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events";function f(a={}){let{enabled:g=!0,onMessage:h}=a,i=(0,c.useQueryClient)(),j=(0,b.useRef)(null),k=(0,b.useRef)(null),l=(0,b.useRef)(0),m=(0,b.useRef)(1e3),n=(0,b.useRef)(()=>{}),[o,p]=(0,b.useState)(!1),[q,r]=(0,b.useState)(!1),[s,t]=(0,b.useState)(null),u=(0,b.useRef)(h);(0,b.useEffect)(()=>{u.current=h},[h]);let v=(0,b.useCallback)(async()=>{if(g&&j.current?.readyState!==WebSocket.OPEN){k.current&&(clearTimeout(k.current),k.current=null);try{let a=await (0,d.getApiToken)(),b=`${e}?token=${encodeURIComponent(a)}`,c=new WebSocket(b);j.current=c,c.onopen=()=>{p(!0),l.current=0,m.current=1e3,console.log("[WebSocket] Connected to memory server")},c.onmessage=a=>{try{let b=JSON.parse(a.data);switch(t({type:b.type,data:b.data,timestamp:b.timestamp||new Date().toISOString()}),u.current?.(b),b.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]}),i.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":i.invalidateQueries({queryKey:["links"]});break;case"defence_event":i.invalidateQueries({queryKey:["agents"]}),i.invalidateQueries({queryKey:["agent-timeline"]}),i.invalidateQueries({queryKey:["audit-logs"]}),i.invalidateQueries({queryKey:["audit-stats"]});break;case"kill_switch_activated":case"kill_switch_deactivated":i.invalidateQueries({queryKey:["control-status"]}),i.invalidateQueries({queryKey:["iron-dome-status"]}),i.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===b.type&&(i.invalidateQueries({queryKey:["version"]}),i.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...");break;case"xray_detection":i.invalidateQueries({queryKey:["xray-activity"]}),i.invalidateQueries({queryKey:["xray-watch-sessions"]}),i.invalidateQueries({queryKey:["xray-findings"]}),i.invalidateQueries({queryKey:["xray-status"]})}}catch(a){console.error("[WebSocket] Failed to parse message:",a)}},c.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},c.onclose=a=>{if(p(!1),console.log("[WebSocket] Disconnected",a.code),(1008===a.code||4001===a.code||4003===a.code)&&(0,d.invalidateApiToken)(),g&&l.current<10){let a=m.current;l.current++,m.current=Math.min(2*m.current,3e4),console.log(`[WebSocket] Reconnecting in ${a}ms (attempt ${l.current}/10)...`),k.current=setTimeout(()=>{n.current()},a)}else l.current>=10&&(r(!0),console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again."))}}catch(a){console.error("[WebSocket] Failed to connect:",a)}}},[g,i]);return(0,b.useEffect)(()=>{n.current=v}),(0,b.useEffect)(()=>(g&&v(),()=>{k.current&&clearTimeout(k.current),j.current&&(j.current.close(),j.current=null)}),[g,v]),{isConnected:o,connectionFailed:q,lastEvent:s,reconnect:(0,b.useCallback)(()=>{l.current=0,m.current=1e3,r(!1),v()},[v])}}a.s(["useMemoryWebSocket",()=>f])},66397,a=>{"use strict";let b=(0,a.i(70694).default)("scan-search",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);a.s(["ScanSearch",()=>b],66397)},76625,a=>{"use strict";let b=(0,a.i(70694).default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);a.s(["Database",()=>b],76625)},70694,a=>{"use strict";var b=a.i(98419);let c=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},d=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let f=(0,b.forwardRef)(({color:a="currentColor",size:c=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:c,height:c,stroke:a,strokeWidth:g?24*Number(f)/Number(c):f,className:d("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:d(`lucide-${c(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=c(a),g};a.s(["default",()=>g],70694)},98472,a=>{"use strict";let b=(0,a.i(70694).default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);a.s(["Shield",()=>b],98472)},73683,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},64575,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},40145,a=>{"use strict";let b=(0,a.i(70694).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",()=>b],40145)},67819,a=>{"use strict";var b=a.i(16306),c=a.i(11160),d=a.i(52181),e=a.i(70694);let f=(0,e.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);var g=a.i(5479);let h=(0,e.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var i=a.i(98472),j=a.i(95480),k=a.i(64565),l=a.i(76625);let m=(0,e.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var n=a.i(66397),o=a.i(40145);let p=[{href:"/overview",label:"Overview",icon:m},{href:"/memory",label:"Memory",icon:l.Database},{href:"/protection",label:"Protection",icon:i.Shield},{href:"/xray",label:"X-Ray",icon:n.ScanSearch},{href:"/settings",label:"Settings",icon:o.Settings}];var q=a.i(68839),r=a.i(67789),s=a.i(98419);let t=new Set;function u(){let a,e=(0,d.usePathname)(),{sidebarPinned:l,toggleSidebarPinned:m}=(0,q.useDashboardStore)(),[n,o]=(0,s.useState)(!1),[u,v]=(0,s.useState)(null),w=u===e,x=(a=(0,s.useCallback)(a=>(t.add(a),()=>{t.delete(a)}),[]),(0,s.useSyncExternalStore)(a,()=>!1,()=>!1)),{data:y}=(0,r.useVersion)(),z=l||n||w;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{onClick:()=>v(e),className:"fixed left-3 top-3 z-50 flex h-10 w-10 items-center justify-center rounded-xl bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] text-[var(--sc-text-secondary)] md:hidden","aria-label":"Open navigation",children:(0,b.jsx)(f,{size:18})}),w&&(0,b.jsx)("div",{className:"fixed inset-0 z-40 bg-black/50 backdrop-blur-sm md:hidden",onClick:()=>v(null)}),(0,b.jsxs)("aside",{className:(0,k.cn)("z-50 flex shrink-0 flex-col border-r border-[var(--sc-border)] bg-[var(--sc-bg-deep)] transition-all duration-300","fixed inset-y-0 left-0 md:relative",w?"translate-x-0":"-translate-x-full md:translate-x-0",z?"w-60":"w-16"),onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,b.jsxs)("div",{className:"flex h-16 items-center gap-3 border-b border-[var(--sc-border)] px-4",children:[(0,b.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-[var(--sc-coral)] to-[var(--sc-coral-dark)]",children:(0,b.jsx)(i.Shield,{size:16,className:"text-white"})}),(0,b.jsxs)("div",{className:(0,k.cn)("overflow-hidden whitespace-nowrap transition-all duration-300",z?"w-auto opacity-100":"w-0 opacity-0"),children:[(0,b.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)]",children:"ShieldCortex"}),(0,b.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Dashboard"})]}),w&&(0,b.jsx)("button",{onClick:()=>v(null),className:"ml-auto text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)] md:hidden","aria-label":"Close navigation",children:(0,b.jsx)(j.X,{size:18})})]}),(0,b.jsx)("nav",{className:"flex-1 space-y-1 px-2 py-4",role:"navigation","aria-label":"Main navigation",children:p.map(a=>{var d;let f=a.icon,g="/overview"===(d=a.href)?"/overview"===e||"/"===e:e===d||e.startsWith(`${d}/`);return(0,b.jsxs)(c.default,{href:a.href,"aria-current":g?"page":void 0,className:(0,k.cn)("relative flex items-center gap-3 rounded-xl px-3 py-2.5 transition-all duration-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--sc-cyan)]",g?"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-muted)] hover:bg-[var(--sc-surface-interactive)] hover:text-[var(--sc-text-secondary)]"),children:[g&&(0,b.jsx)("div",{className:"absolute left-0 top-1/2 h-5 w-0.5 -translate-y-1/2 rounded-r bg-[var(--sc-coral)]"}),(0,b.jsx)(f,{size:18,className:(0,k.cn)("shrink-0",g&&"text-[var(--sc-coral)]")}),(0,b.jsx)("span",{className:(0,k.cn)("overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",z?"w-auto opacity-100":"w-0 opacity-0"),children:a.label})]},a.href)})}),(0,b.jsxs)("div",{className:"space-y-2 border-t border-[var(--sc-border)] px-2 py-3",children:[z&&(0,b.jsxs)("button",{onClick:m,className:"hidden w-full items-center gap-3 rounded-xl px-3 py-2 text-[var(--sc-text-muted)] transition-colors hover:bg-[var(--sc-surface-interactive)] hover:text-[var(--sc-text-secondary)] md:flex","aria-label":l?"Unpin sidebar":"Pin sidebar",children:[l?(0,b.jsx)(h,{size:16}):(0,b.jsx)(g.Pin,{size:16}),(0,b.jsx)("span",{className:"text-xs",children:l?"Unpin":"Pin sidebar"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 px-3 py-1",children:[(0,b.jsx)("span",{className:(0,k.cn)("h-2 w-2 shrink-0 rounded-full",x?"bg-[var(--sc-cyan)] pulse-cyan":"bg-[var(--sc-coral)] pulse-coral"),"aria-label":x?"Real-time connected":"Real-time disconnected"}),(0,b.jsx)("span",{className:(0,k.cn)("overflow-hidden whitespace-nowrap text-[11px] text-[var(--sc-text-muted)] transition-all duration-300",z?"w-auto opacity-100":"w-0 opacity-0"),children:x?"Connected":"Disconnected"})]}),(0,b.jsxs)("div",{className:(0,k.cn)("overflow-hidden whitespace-nowrap px-3 font-mono text-[10px] text-[var(--sc-text-muted)] transition-all duration-300",z?"opacity-100":"h-0 opacity-0"),children:["v",y?.version??"..."]})]})]})]})}a.s(["Sidebar",()=>u],67819)},81662,a=>{"use strict";var b=a.i(16306),c=a.i(83364);function d(){return(0,b.jsx)(c.Toaster,{position:"bottom-right",toastOptions:{style:{background:"var(--sc-bg-surface)",border:"1px solid var(--sc-border)",color:"var(--sc-text-primary)",fontFamily:"system-ui, sans-serif"}},theme:"dark"})}a.s(["ToastProvider",()=>d])},16525,a=>{"use strict";var b=a.i(98419),c=a.i(83364),d=a.i(9315);let e=new Map;function f(){let a=(0,b.useCallback)(a=>{let b;if("defence_event"!==a.type)return;let d=a.data;if(!d||"ALLOW"===d.firewall_result)return;let f="BLOCK"===d.firewall_result,g=d.source_identifier||d.source_type||"unknown source",h=(b=function(a){if(Array.isArray(a))return a.filter(a=>"string"==typeof a);if("string"!=typeof a||!a.trim())return[];try{let b=JSON.parse(a);if(Array.isArray(b))return b.filter(a=>"string"==typeof a)}catch{return[a]}return[]}(d.threat_indicators)).length?b.slice(0,3).map(a=>a.replace(/_/g," ")).join(", "):"",i=d.reason?.trim()||(h?`Threats: ${h}`:"See audit log for details");if(function(a){let b=Date.now(),c=e.get(a);if(c&&b-c<2e3)return!0;if(e.set(a,b),e.size>50){let a=b-2e3;for(let[b,c]of e)c<a&&e.delete(b)}return!1}(`${d.firewall_result}:${g}:${(d.reason||"").slice(0,80)}`))return;let j=f?`\u{1F6E1} Blocked attack from ${g}`:`\u{26A0}\u{FE0F} Quarantined input from ${g}`,k={description:i,duration:f?8e3:5e3};f?c.toast.error(j,k):c.toast.warning(j,k)},[]);return(0,d.useMemoryWebSocket)({onMessage:a}),null}a.s(["BlockToastBridge",()=>f])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__c2b92077._.js.map
|
package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[20203,a=>{"use strict";let b=(0,a.i(70694).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",()=>b],20203)},14126,a=>{"use strict";let b=(0,a.i(70694).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",()=>b],14126)},54100,a=>{"use strict";var b=a.i(16306),c=a.i(64565);let d={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function e({children:a,className:e,hover:f=!1,hoverCyan:g=!1,strong:h=!1,severity:i,onClick:j,selected:k=!1}){return(0,b.jsx)("div",{className:(0,c.cn)(h?"glass-card-strong":"glass-card",f&&"glass-card-hover cursor-pointer",g&&"glass-card-hover-cyan cursor-pointer",j&&!f&&!g&&"cursor-pointer",i&&d[i],k&&"border-[var(--sc-cyan)] shadow-[0_0_20px_var(--sc-glow-cyan)]",e),onClick:j,onKeyDown:j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j())}:void 0,role:j?"button":void 0,tabIndex:j?0:void 0,children:a})}a.s(["GlassCard",()=>e])},29448,a=>{"use strict";let b=(0,a.i(70694).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>b],29448)},47520,a=>{"use strict";let b=(0,a.i(70694).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],47520)},74150,a=>{"use strict";let b=(0,a.i(70694).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",()=>b],74150)},79155,a=>{"use strict";let b=(0,a.i(70694).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);a.s(["ShieldAlert",()=>b],79155)},35031,79030,a=>{"use strict";var b=a.i(40458),c=a.i(66807),d=a.i(14220),e=a.i(86044);let f=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function g(){let a=await (0,e.authFetch)(`${f}/api/license/status`);if(!a.ok)throw Error("Failed to fetch license status");return a.json()}async function h(a){let b=await (0,e.authFetch)(`${f}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return b.json()}async function i(){let a=await (0,e.authFetch)(`${f}/api/license/deactivate`,{method:"POST"});if(!a.ok)throw Error("Failed to deactivate license");return a.json()}function j(){return(0,b.useQuery)({queryKey:["license-status"],queryFn:g,refetchInterval:6e4,retry:2})}function k(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>h(a),onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}function l(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:i,onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}a.s(["useActivateLicense",()=>k,"useDeactivateLicense",()=>l,"useLicenseStatus",()=>j],35031),a.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],79030)},77115,a=>{"use strict";let b=(0,a.i(70694).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock3",()=>b],77115)},13106,84692,a=>{"use strict";var b=a.i(16306),c=a.i(64565);function d({className:a}){return(0,b.jsx)("div",{className:(0,c.cn)("animate-pulse rounded-xl bg-[var(--sc-surface-interactive)]",a)})}function e(){return(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(d,{className:"h-3 w-24"}),(0,b.jsx)(d,{className:"h-7 w-56"}),(0,b.jsx)(d,{className:"h-4 w-80"})]}),(0,b.jsx)(d,{className:"h-10 w-96"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"})]}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsx)(d,{className:"h-64"}),(0,b.jsx)(d,{className:"h-64"})]})]})}a.s(["PageSkeleton",()=>e],13106);let f=(0,a.i(70694).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>f],84692)},48036,a=>{"use strict";let b=(0,a.i(70694).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",()=>b],48036)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=dashboard_11878109._.js.map
|