shieldcortex 4.28.0 → 4.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_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.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +2 -2
- 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/dist/cli/doctor.d.ts +17 -0
- package/dist/cli/doctor.js +44 -0
- package/dist/cli/memory.d.ts +23 -0
- package/dist/cli/memory.js +101 -0
- package/dist/database/init.d.ts +9 -0
- package/dist/database/init.js +32 -4
- package/dist/database/migrations.js +126 -0
- package/dist/license/store.js +42 -2
- package/dist/memory/consolidate.d.ts +82 -6
- package/dist/memory/consolidate.js +287 -117
- package/dist/setup/openclaw.d.ts +26 -0
- package/dist/setup/openclaw.js +61 -0
- package/dist/tools/remember.js +24 -3
- package/hooks/openclaw/cortex-memory/handler.ts +223 -171
- package/hooks/openclaw/cortex-memory/runtime.mjs +64 -0
- package/package.json +1 -1
- package/scripts/lib/dedup.mjs +99 -0
- package/scripts/lib/openclaw-extract.mjs +129 -0
- package/scripts/lib/recall-log.mjs +16 -1
- package/scripts/lib/recall-relevance.mjs +191 -0
- package/scripts/lib/salience.mjs +8 -3
- package/scripts/lib/save-memory.mjs +62 -6
- package/scripts/lib/session-context.mjs +30 -0
- package/scripts/postinstall.mjs +29 -10
- package/scripts/prompt-recall-hook.mjs +118 -15
- package/scripts/session-start-hook.mjs +17 -6
- /package/dashboard/.next/standalone/dashboard/.next/static/{3HiFjAMoQUDn05ZMNC0Ae → 0HpUm8SRvm9fnWVO0OBB2}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{3HiFjAMoQUDn05ZMNC0Ae → 0HpUm8SRvm9fnWVO0OBB2}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{3HiFjAMoQUDn05ZMNC0Ae → 0HpUm8SRvm9fnWVO0OBB2}/_ssgManifest.js +0 -0
package/dist/license/store.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* License is cached in memory after first read.
|
|
11
11
|
*/
|
|
12
|
-
import { readFileSync, writeFileSync, existsSync, unlinkSync, mkdirSync } from 'fs';
|
|
12
|
+
import { readFileSync, writeFileSync, existsSync, unlinkSync, mkdirSync, statSync } from 'fs';
|
|
13
13
|
import { join } from 'path';
|
|
14
14
|
import { homedir } from 'os';
|
|
15
15
|
import { verifyLicenseKey } from './verify.js';
|
|
@@ -22,10 +22,32 @@ function getLicenseFilePath() {
|
|
|
22
22
|
return join(getConfigDir(), 'license.json');
|
|
23
23
|
}
|
|
24
24
|
// ── Cache ────────────────────────────────────────────────
|
|
25
|
+
//
|
|
26
|
+
// In-memory cache of the parsed/verified licence. Refreshed automatically
|
|
27
|
+
// when the on-disk file mtime changes (v4.27.2). This lets long-running
|
|
28
|
+
// workers pick up `shieldcortex license activate <key>` without a process
|
|
29
|
+
// restart — previously the worker held the old tier cached for its
|
|
30
|
+
// lifetime and any cloud_sync / heartbeat feature gate stayed stuck on
|
|
31
|
+
// the value at startup. The mtime check is a single stat() per call
|
|
32
|
+
// (microseconds); cheap enough to run on every gate hit.
|
|
25
33
|
let cachedLicense = null;
|
|
34
|
+
let cachedLicenseFileMtimeMs = null;
|
|
35
|
+
/**
|
|
36
|
+
* Read the licence file's current mtime (ms). Returns null if the file
|
|
37
|
+
* doesn't exist — that's a valid cached state too (= FREE).
|
|
38
|
+
*/
|
|
39
|
+
function readLicenseFileMtimeMs() {
|
|
40
|
+
try {
|
|
41
|
+
return statSync(getLicenseFilePath()).mtimeMs;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
26
47
|
/** Clear the in-memory cache (useful for testing or after activation). */
|
|
27
48
|
export function clearLicenseCache() {
|
|
28
49
|
cachedLicense = null;
|
|
50
|
+
cachedLicenseFileMtimeMs = null;
|
|
29
51
|
clearTrialCache();
|
|
30
52
|
}
|
|
31
53
|
// ── Read ─────────────────────────────────────────────────
|
|
@@ -34,6 +56,15 @@ export function clearLicenseCache() {
|
|
|
34
56
|
* Returns a LicenseInfo with tier='free' if no license exists or verification fails.
|
|
35
57
|
*/
|
|
36
58
|
export function getLicense() {
|
|
59
|
+
// Hot-reload: if the licence file's mtime has changed since the value
|
|
60
|
+
// was cached (or the file appeared/disappeared), drop the cache so the
|
|
61
|
+
// new tier takes effect immediately. This is what makes long-running
|
|
62
|
+
// workers see `shieldcortex license activate <key>` without a restart.
|
|
63
|
+
const currentMtimeMs = readLicenseFileMtimeMs();
|
|
64
|
+
if (cachedLicense !== null && cachedLicenseFileMtimeMs !== currentMtimeMs) {
|
|
65
|
+
cachedLicense = null;
|
|
66
|
+
clearTrialCache();
|
|
67
|
+
}
|
|
37
68
|
if (cachedLicense)
|
|
38
69
|
return cachedLicense;
|
|
39
70
|
const FREE = {
|
|
@@ -49,11 +80,13 @@ export function getLicense() {
|
|
|
49
80
|
const licenseFile = getLicenseFilePath();
|
|
50
81
|
if (!existsSync(licenseFile)) {
|
|
51
82
|
cachedLicense = FREE;
|
|
83
|
+
cachedLicenseFileMtimeMs = null;
|
|
52
84
|
return FREE;
|
|
53
85
|
}
|
|
54
86
|
const raw = JSON.parse(readFileSync(licenseFile, 'utf-8'));
|
|
55
87
|
if (!raw.key) {
|
|
56
88
|
cachedLicense = FREE;
|
|
89
|
+
cachedLicenseFileMtimeMs = currentMtimeMs;
|
|
57
90
|
return FREE;
|
|
58
91
|
}
|
|
59
92
|
// Check if previously marked as revoked or expired by online validation.
|
|
@@ -62,15 +95,18 @@ export function getLicense() {
|
|
|
62
95
|
// so we only hard-block on revoked here.
|
|
63
96
|
if (raw.validationStatus === 'revoked') {
|
|
64
97
|
cachedLicense = FREE;
|
|
98
|
+
cachedLicenseFileMtimeMs = currentMtimeMs;
|
|
65
99
|
return FREE;
|
|
66
100
|
}
|
|
67
101
|
// Verify the key cryptographically (checks exp + grace period)
|
|
68
102
|
const info = verifyLicenseKey(raw.key);
|
|
69
103
|
cachedLicense = info;
|
|
104
|
+
cachedLicenseFileMtimeMs = currentMtimeMs;
|
|
70
105
|
return info;
|
|
71
106
|
}
|
|
72
107
|
catch {
|
|
73
108
|
cachedLicense = FREE;
|
|
109
|
+
cachedLicenseFileMtimeMs = currentMtimeMs;
|
|
74
110
|
return FREE;
|
|
75
111
|
}
|
|
76
112
|
}
|
|
@@ -126,8 +162,10 @@ export function activateLicense(key) {
|
|
|
126
162
|
const licenseFile = getLicenseFilePath();
|
|
127
163
|
mkdirSync(configDir, { recursive: true });
|
|
128
164
|
writeFileSync(licenseFile, JSON.stringify(file, null, 2) + '\n', { mode: 0o600 });
|
|
129
|
-
//
|
|
165
|
+
// Refresh cache + mtime so the next getLicense() call in this process
|
|
166
|
+
// doesn't trigger a re-read for no reason.
|
|
130
167
|
cachedLicense = info;
|
|
168
|
+
cachedLicenseFileMtimeMs = readLicenseFileMtimeMs();
|
|
131
169
|
return info;
|
|
132
170
|
}
|
|
133
171
|
/**
|
|
@@ -144,6 +182,7 @@ export function deactivateLicense() {
|
|
|
144
182
|
// Best effort
|
|
145
183
|
}
|
|
146
184
|
cachedLicense = null;
|
|
185
|
+
cachedLicenseFileMtimeMs = null;
|
|
147
186
|
clearTrialCache();
|
|
148
187
|
}
|
|
149
188
|
/**
|
|
@@ -162,6 +201,7 @@ export function updateValidationStatus(status) {
|
|
|
162
201
|
// If revoked or expired, invalidate cache so next getLicense() re-verifies
|
|
163
202
|
if (status === 'revoked' || status === 'expired') {
|
|
164
203
|
cachedLicense = null;
|
|
204
|
+
cachedLicenseFileMtimeMs = null;
|
|
165
205
|
}
|
|
166
206
|
}
|
|
167
207
|
catch {
|
|
@@ -27,8 +27,42 @@ export declare function findDuplicateMemoryPairs(options?: {
|
|
|
27
27
|
limit?: number;
|
|
28
28
|
}): DuplicateMemoryPair[];
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
30
|
+
* De-duplicate long-term memories found as duplicate PAIRS by
|
|
31
|
+
* findDuplicateMemoryPairs (same project|category, similar title + >0.5 content
|
|
32
|
+
* overlap). Runs every ~4h on the auto path: server.ts setInterval → fullCleanup
|
|
33
|
+
* → consolidate → deduplicateMemories.
|
|
34
|
+
*
|
|
35
|
+
* B11 (memory-quality fix): the previous implementation built
|
|
36
|
+
* `kept.content + "\n\nMerged from duplicate:\n" + uniqueSentences` and wrote it
|
|
37
|
+
* back with `UPDATE memories SET content = ?`. That was the SECOND lossy-append
|
|
38
|
+
* site (mergeSimilarMemories was the first) and kept generating ever-growing
|
|
39
|
+
* "frankenmemories" on this path even after the first site was fixed. The kept
|
|
40
|
+
* memory's `content` is now NEVER modified.
|
|
41
|
+
*
|
|
42
|
+
* New policy (identical to mergeSimilarMemories — one source of truth):
|
|
43
|
+
* - KEEP the higher-EFFECTIVE-salience member of the pair (computeEffectiveSalience
|
|
44
|
+
* via the shared salience.mjs — recency/access/pin/downvote, same ranking as
|
|
45
|
+
* recall and the downvote CLI). NOTE: this can differ from the pair's raw
|
|
46
|
+
* `recommendedKeepId`, which only considered raw salience + recency.
|
|
47
|
+
* - Dispose the loser via the shared disposeLoser: combined similarity
|
|
48
|
+
* (re-measured vs the kept row) ≥ 0.85 → DELETE; below → DOWNVOTE (reversible).
|
|
49
|
+
* - Tags are unioned onto the kept row (metadata only, non-lossy). The kept
|
|
50
|
+
* content and salience are untouched.
|
|
51
|
+
*
|
|
52
|
+
* Defence re-scan removed (B11): the old re-scan existed ONLY to validate the
|
|
53
|
+
* SYNTHESIZED concatenated merged body before persisting it (two individually-
|
|
54
|
+
* clean rows could straddle a credential pattern across the join). Now that no
|
|
55
|
+
* concatenation happens here, there is no synthesized content to scan — the kept
|
|
56
|
+
* row's bytes are written verbatim and unchanged, exactly as they already exist
|
|
57
|
+
* in `memories`. So this pass introduces no new bytes to validate. (This is a
|
|
58
|
+
* narrow claim about THIS path: it does not assume every row was scanned at write
|
|
59
|
+
* time — e.g. importMemories inserts rows with no scan — only that the dedup no
|
|
60
|
+
* longer fabricates a new body that would need scanning.) Dropping the re-scan
|
|
61
|
+
* also avoids re-auditing unchanged content on every 4h pass.
|
|
62
|
+
*
|
|
63
|
+
* Only rows clustered in THIS pass are acted on; historical merged rows are not
|
|
64
|
+
* rewritten (effective salience demotes them over time). STM→LTM promotion is
|
|
65
|
+
* handled separately by processDecay/promoteMemory in consolidate().
|
|
32
66
|
*/
|
|
33
67
|
export declare function deduplicateMemories(options?: {
|
|
34
68
|
dryRun?: boolean;
|
|
@@ -55,10 +89,32 @@ export declare function clusterAndSummarise(options?: {
|
|
|
55
89
|
*/
|
|
56
90
|
export declare function enforceMemoryLimits(config?: MemoryConfig): number;
|
|
57
91
|
/**
|
|
58
|
-
* Find
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
92
|
+
* Find clusters of similar short-term memories within each project|category,
|
|
93
|
+
* KEEP the single highest-effective-salience member, and demote the rest
|
|
94
|
+
* WITHOUT destroying or concatenating their content.
|
|
95
|
+
*
|
|
96
|
+
* B11 (memory-quality fix): the previous implementation appended every loser's
|
|
97
|
+
* body into the kept memory ("Consolidated context:" bullets) and deleted the
|
|
98
|
+
* losers. Over ~417 live rows this produced 188 ever-growing "frankenmemories"
|
|
99
|
+
* — exactly the garbled content users complained about. The kept memory's
|
|
100
|
+
* `content` is now NEVER modified.
|
|
101
|
+
*
|
|
102
|
+
* Disposition per loser (see NEAR_IDENTICAL_DELETE_THRESHOLD):
|
|
103
|
+
* - combined ≥ 0.85 → DELETE (near-identical; content already in the kept row)
|
|
104
|
+
* - combined < 0.85 → DOWNVOTE (reversible; sinks via effective salience)
|
|
105
|
+
*
|
|
106
|
+
* Why the split exists at all: NO reaping path (decay.ts shouldDelete,
|
|
107
|
+
* prune.ts, expiry.ts, enforceMemoryLimits) reads `downvote_count` or effective
|
|
108
|
+
* salience — they all order by raw `salience`. So downvote-ONLY would leave the
|
|
109
|
+
* store unbounded (the dups sink in recall but never get pruned). Deleting the
|
|
110
|
+
* near-identical losers keeps the store bounded with zero information loss; the
|
|
111
|
+
* moderate near-dups are preserved and merely demoted.
|
|
112
|
+
*
|
|
113
|
+
* Tags are unioned onto the kept row and access counts summed (metadata only,
|
|
114
|
+
* non-lossy). STM→LTM promotion is handled separately by processDecay/
|
|
115
|
+
* promoteMemory in consolidate(); this function only de-duplicates.
|
|
116
|
+
*
|
|
117
|
+
* Returns the count of deleted (near-identical) losers.
|
|
62
118
|
*/
|
|
63
119
|
export declare function mergeSimilarMemories(project?: string, similarityThreshold?: number): number;
|
|
64
120
|
/**
|
|
@@ -144,5 +200,25 @@ export interface DreamModeResult {
|
|
|
144
200
|
* 1. Find near-duplicates by embedding similarity >0.9, merge them
|
|
145
201
|
* 2. Flag memories >30 days old with no access as archival candidates
|
|
146
202
|
* 3. Detect and flag contradictions
|
|
203
|
+
*
|
|
204
|
+
* DISPOSAL POLICY — deliberately DIVERGES from the auto path:
|
|
205
|
+
* This is the EXPLICIT, user-invoked `shieldcortex consolidate` command (and the
|
|
206
|
+
* public `consolidateMemories` export). Because the user has actively asked for a
|
|
207
|
+
* consolidation, aggressive cleanup is the intended behaviour: the loser of every
|
|
208
|
+
* duplicate pair is HARD-DELETED. This is on purpose and must NOT be replaced with
|
|
209
|
+
* the gentle `disposeLoser` policy.
|
|
210
|
+
*
|
|
211
|
+
* Contrast with the 4-hourly AUTO path (deduplicateMemories / mergeSimilarMemories),
|
|
212
|
+
* which runs UNATTENDED and therefore uses the conservative `disposeLoser`: it only
|
|
213
|
+
* deletes near-identical losers (combined ≥ 0.85, content already contained in the
|
|
214
|
+
* kept row) and merely DOWNVOTES (reversible) the moderate near-dups. That caution
|
|
215
|
+
* is right for an unsupervised background job, but wrong for a deliberate manual
|
|
216
|
+
* cleanup the user explicitly triggered.
|
|
217
|
+
*
|
|
218
|
+
* The two paths DO share keep-selection: both pick the kept row by EFFECTIVE
|
|
219
|
+
* salience (effectiveSalienceOfRow — recency/access/pin/downvote), so the row that
|
|
220
|
+
* survives is consistent across all three dedup sites. Effective salience also
|
|
221
|
+
* discriminates where the pair's raw `recommendedKeepId` (raw salience + recency)
|
|
222
|
+
* ties at 1.0.
|
|
147
223
|
*/
|
|
148
224
|
export declare function consolidateMemories(): DreamModeResult;
|