shieldcortex 4.25.4 → 4.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_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/dist/cli/doctor.js +44 -6
- package/dist/database/init.js +2 -755
- package/dist/database/inline-schema.d.ts +15 -0
- package/dist/database/inline-schema.js +319 -0
- package/dist/database/migrations.d.ts +48 -0
- package/dist/database/migrations.js +506 -0
- package/dist/setup/openclaw.d.ts +29 -0
- package/dist/setup/openclaw.js +273 -1
- package/package.json +1 -1
- /package/dashboard/.next/standalone/dashboard/.next/static/{wjVtM0JA7Hm9YJPU7WDFt → 6tjHfDwzkcT4IqhdOCnh9}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{wjVtM0JA7Hm9YJPU7WDFt → 6tjHfDwzkcT4IqhdOCnh9}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{wjVtM0JA7Hm9YJPU7WDFt → 6tjHfDwzkcT4IqhdOCnh9}/_ssgManifest.js +0 -0
package/dist/setup/openclaw.js
CHANGED
|
@@ -1015,6 +1015,270 @@ export async function openClawHookStatus() {
|
|
|
1015
1015
|
console.log(' note: legacy `plugins.installs` entry detected — will be cleaned on next `shieldcortex openclaw install`');
|
|
1016
1016
|
}
|
|
1017
1017
|
}
|
|
1018
|
+
/**
|
|
1019
|
+
* `shieldcortex openclaw repair` (v4.25.5).
|
|
1020
|
+
*
|
|
1021
|
+
* Diagnoses and fixes the duplicate-plugin-id mess that `shieldcortex doctor`'s
|
|
1022
|
+
* "OpenClaw dup installs" check surfaces. Two distinct cases:
|
|
1023
|
+
*
|
|
1024
|
+
* 1. **Sticky hooks/ duplicate** — when a copy sits at `~/.openclaw/hooks/
|
|
1025
|
+
* shieldcortex-realtime/`, plain `rm -rf` reverts on the next
|
|
1026
|
+
* `openclaw plugins update` because OpenClaw's hook-pack install
|
|
1027
|
+
* tracking re-creates it. The only reliable purge is a full
|
|
1028
|
+
* `openclaw plugins uninstall` + `plugins install @latest` round-trip,
|
|
1029
|
+
* which clears every tracking record at once. Customer-side config
|
|
1030
|
+
* under `~/.openclaw/openclaw.json` → `plugins.entries.shieldcortex-
|
|
1031
|
+
* realtime` (interceptor severity actions, cloudApiKey, autoMemory
|
|
1032
|
+
* thresholds, the enabled flag, allowlist membership) is wiped by
|
|
1033
|
+
* `plugins uninstall`, so this function snapshots it first and
|
|
1034
|
+
* restores it after reinstall.
|
|
1035
|
+
*
|
|
1036
|
+
* 2. **Extensions/ leftovers** — legacy install locations and
|
|
1037
|
+
* `.trash-*` / `*.disabled-*` directories. No sticky state — a simple
|
|
1038
|
+
* `rm -rf` suffices.
|
|
1039
|
+
*
|
|
1040
|
+
* Memory data at `~/.shieldcortex/` is never touched.
|
|
1041
|
+
*
|
|
1042
|
+
* If something fails between uninstall and restore, the snapshot is also
|
|
1043
|
+
* written to `~/.openclaw/openclaw.json.repair-backup-<ts>` so the user
|
|
1044
|
+
* can recover manually.
|
|
1045
|
+
*/
|
|
1046
|
+
export async function repairOpenClawPlugin() {
|
|
1047
|
+
const home = resolveUserHome();
|
|
1048
|
+
const openclawDir = path.join(home, '.openclaw');
|
|
1049
|
+
const configPath = path.join(openclawDir, 'openclaw.json');
|
|
1050
|
+
const pluginId = 'shieldcortex-realtime';
|
|
1051
|
+
if (!fs.existsSync(openclawDir)) {
|
|
1052
|
+
console.log('OpenClaw not detected (~/.openclaw missing). Nothing to repair.');
|
|
1053
|
+
return;
|
|
1054
|
+
}
|
|
1055
|
+
// Find duplicate install locations (same scan as the doctor check).
|
|
1056
|
+
const dupCandidates = [];
|
|
1057
|
+
for (const subdir of ['extensions', 'hooks']) {
|
|
1058
|
+
const dir = path.join(openclawDir, subdir);
|
|
1059
|
+
if (!fs.existsSync(dir))
|
|
1060
|
+
continue;
|
|
1061
|
+
let entries;
|
|
1062
|
+
try {
|
|
1063
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
1064
|
+
}
|
|
1065
|
+
catch {
|
|
1066
|
+
continue;
|
|
1067
|
+
}
|
|
1068
|
+
for (const entry of entries) {
|
|
1069
|
+
if (!entry.isDirectory())
|
|
1070
|
+
continue;
|
|
1071
|
+
if (!entry.name.includes(pluginId))
|
|
1072
|
+
continue;
|
|
1073
|
+
const manifest = path.join(dir, entry.name, 'openclaw.plugin.json');
|
|
1074
|
+
if (fs.existsSync(manifest)) {
|
|
1075
|
+
dupCandidates.push(path.join(dir, entry.name));
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
if (dupCandidates.length === 0) {
|
|
1080
|
+
console.log('No duplicate shieldcortex-realtime installs detected. Nothing to repair.');
|
|
1081
|
+
return;
|
|
1082
|
+
}
|
|
1083
|
+
const hooksDirPrefix = path.join(openclawDir, 'hooks') + path.sep;
|
|
1084
|
+
const hasHooksDup = dupCandidates.some((p) => p.startsWith(hooksDirPrefix));
|
|
1085
|
+
const displayPaths = dupCandidates.map((p) => p.replace(home, '~'));
|
|
1086
|
+
console.log(`Found ${dupCandidates.length} duplicate install(s):`);
|
|
1087
|
+
for (const p of displayPaths)
|
|
1088
|
+
console.log(` - ${p}`);
|
|
1089
|
+
console.log('');
|
|
1090
|
+
if (!hasHooksDup) {
|
|
1091
|
+
// Simple case: extensions/ leftovers only. No sticky state — just rm.
|
|
1092
|
+
console.log('All duplicates are in ~/.openclaw/extensions/ (no sticky state). Removing:');
|
|
1093
|
+
for (const p of dupCandidates) {
|
|
1094
|
+
try {
|
|
1095
|
+
fs.rmSync(p, { recursive: true, force: true });
|
|
1096
|
+
console.log(` ✓ removed ${p.replace(home, '~')}`);
|
|
1097
|
+
}
|
|
1098
|
+
catch (err) {
|
|
1099
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1100
|
+
console.log(` ✗ failed to remove ${p.replace(home, '~')} — ${msg}`);
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
console.log('');
|
|
1104
|
+
console.log('Repair complete. Restart the OpenClaw gateway to apply.');
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
// Sticky case: ~/.openclaw/hooks/<id>/ duplicate present. Need the full
|
|
1108
|
+
// uninstall+reinstall round-trip with config preservation.
|
|
1109
|
+
// Step 1: Snapshot the customer's plugin config from openclaw.json.
|
|
1110
|
+
let configSnapshot = { entry: null, allowed: false, raw: null };
|
|
1111
|
+
if (fs.existsSync(configPath)) {
|
|
1112
|
+
try {
|
|
1113
|
+
const raw = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
1114
|
+
const plugins = (raw.plugins ?? {});
|
|
1115
|
+
const entry = plugins.entries?.[pluginId] ?? null;
|
|
1116
|
+
const allowed = Array.isArray(plugins.allow) && plugins.allow.includes(pluginId);
|
|
1117
|
+
configSnapshot = { entry, allowed, raw };
|
|
1118
|
+
console.log('Snapshotted customer plugin config:');
|
|
1119
|
+
console.log(` - plugins.entries.${pluginId}: ${entry ? 'present' : '(none — defaults will apply)'}`);
|
|
1120
|
+
console.log(` - plugins.allow membership: ${allowed ? 'yes' : 'no'}`);
|
|
1121
|
+
// Also write a backup file so the user can manually restore if the
|
|
1122
|
+
// restore step at the end fails for any reason.
|
|
1123
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '-');
|
|
1124
|
+
const backupPath = `${configPath}.repair-backup-${ts}`;
|
|
1125
|
+
try {
|
|
1126
|
+
fs.writeFileSync(backupPath, JSON.stringify(raw, null, 2), 'utf-8');
|
|
1127
|
+
console.log(` - safety backup: ${backupPath.replace(home, '~')}`);
|
|
1128
|
+
}
|
|
1129
|
+
catch { /* best-effort */ }
|
|
1130
|
+
}
|
|
1131
|
+
catch (err) {
|
|
1132
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1133
|
+
console.log(`Warning: could not read ${configPath.replace(home, '~')} — ${msg}`);
|
|
1134
|
+
console.log('Continuing without snapshot. Customer config may be reset to defaults.');
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
else {
|
|
1138
|
+
console.log('No ~/.openclaw/openclaw.json present. Nothing to snapshot.');
|
|
1139
|
+
}
|
|
1140
|
+
console.log('');
|
|
1141
|
+
// Step 2: Resolve openclaw binary.
|
|
1142
|
+
let openclawBin;
|
|
1143
|
+
try {
|
|
1144
|
+
openclawBin = execSync('which openclaw', { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
1145
|
+
if (!openclawBin || !fs.existsSync(openclawBin)) {
|
|
1146
|
+
throw new Error('not on PATH');
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
catch {
|
|
1150
|
+
console.error('Cannot run repair: `openclaw` binary not found on PATH.');
|
|
1151
|
+
console.error('Install OpenClaw first, or run `shieldcortex openclaw install` to set up the integration.');
|
|
1152
|
+
process.exit(1);
|
|
1153
|
+
}
|
|
1154
|
+
const spawnEnv = { ...process.env, HOME: home };
|
|
1155
|
+
// Step 3: Uninstall the plugin. The uninstall command requires interactive
|
|
1156
|
+
// confirmation by default; pipe `y\n` via stdin to auto-confirm.
|
|
1157
|
+
console.log('Step 1/3: openclaw plugins uninstall shieldcortex-realtime');
|
|
1158
|
+
const uninstallResult = spawnSync(openclawBin, ['plugins', 'uninstall', pluginId], {
|
|
1159
|
+
encoding: 'utf-8',
|
|
1160
|
+
env: spawnEnv,
|
|
1161
|
+
input: 'y\n',
|
|
1162
|
+
timeout: 60000,
|
|
1163
|
+
});
|
|
1164
|
+
if (uninstallResult.status !== 0) {
|
|
1165
|
+
console.error(' ✗ uninstall failed:');
|
|
1166
|
+
if (uninstallResult.stderr)
|
|
1167
|
+
console.error(uninstallResult.stderr);
|
|
1168
|
+
if (uninstallResult.stdout)
|
|
1169
|
+
console.error(uninstallResult.stdout);
|
|
1170
|
+
console.error('');
|
|
1171
|
+
console.error('Aborting — no destructive change has been made.');
|
|
1172
|
+
process.exit(1);
|
|
1173
|
+
}
|
|
1174
|
+
console.log(' ✓ uninstall succeeded');
|
|
1175
|
+
console.log('');
|
|
1176
|
+
// Step 4: rm -rf any duplicate locations the uninstall didn't touch.
|
|
1177
|
+
// Field discovery (mac, 2026-05-27): `openclaw plugins uninstall` removes
|
|
1178
|
+
// only the ~/.openclaw/npm/node_modules/<scope>/<id>/ directory + the
|
|
1179
|
+
// openclaw.json `plugins.entries.<id>` entry — it does NOT remove
|
|
1180
|
+
// ~/.openclaw/hooks/<id>/ or ~/.openclaw/extensions/<id>/. If those
|
|
1181
|
+
// lingering copies are left in place, the next install short-circuits
|
|
1182
|
+
// and leaves them intact, so the duplicate persists.
|
|
1183
|
+
console.log('Step 2/3: clear lingering duplicate install paths + hook-pack tracking');
|
|
1184
|
+
let cleared = 0;
|
|
1185
|
+
for (const p of dupCandidates) {
|
|
1186
|
+
try {
|
|
1187
|
+
fs.rmSync(p, { recursive: true, force: true });
|
|
1188
|
+
console.log(` ✓ removed ${p.replace(home, '~')}`);
|
|
1189
|
+
cleared++;
|
|
1190
|
+
}
|
|
1191
|
+
catch (err) {
|
|
1192
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1193
|
+
console.log(` ✗ failed to remove ${p.replace(home, '~')} — ${msg}`);
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
if (cleared === 0) {
|
|
1197
|
+
console.log(' (no duplicate paths required cleanup)');
|
|
1198
|
+
}
|
|
1199
|
+
// ALSO purge `hooks.internal.installs.<id>` from openclaw.json — this
|
|
1200
|
+
// is the legacy-version pin (typically @4.18.3) that drives the
|
|
1201
|
+
// hook-pack reinstall on every `openclaw plugins update`. `plugins
|
|
1202
|
+
// uninstall` does NOT touch this entry on macOS (confirmed via state
|
|
1203
|
+
// inspection 2026-05-27). With the entry removed AND the disk dirs
|
|
1204
|
+
// gone, the next install runs against a true clean slate.
|
|
1205
|
+
if (fs.existsSync(configPath)) {
|
|
1206
|
+
try {
|
|
1207
|
+
const current = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
1208
|
+
const hooks = (current.hooks ?? {});
|
|
1209
|
+
const installs = hooks.internal?.installs;
|
|
1210
|
+
if (installs && Object.prototype.hasOwnProperty.call(installs, pluginId)) {
|
|
1211
|
+
delete installs[pluginId];
|
|
1212
|
+
const tmp = `${configPath}.tmp`;
|
|
1213
|
+
fs.writeFileSync(tmp, JSON.stringify(current, null, 2), 'utf-8');
|
|
1214
|
+
fs.renameSync(tmp, configPath);
|
|
1215
|
+
console.log(` ✓ cleared hooks.internal.installs.${pluginId} (legacy 4.18.3 hook-pack pin)`);
|
|
1216
|
+
}
|
|
1217
|
+
else {
|
|
1218
|
+
console.log(` (no hooks.internal.installs.${pluginId} entry to clear)`);
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
catch (err) {
|
|
1222
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1223
|
+
console.log(` ✗ could not edit openclaw.json — ${msg} (proceeding anyway)`);
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
console.log('');
|
|
1227
|
+
// Step 5: Reinstall from npm.
|
|
1228
|
+
console.log('Step 3/3: openclaw plugins install @drakon-systems/shieldcortex-realtime@latest');
|
|
1229
|
+
const installResult = spawnSync(openclawBin, ['plugins', 'install', '@drakon-systems/shieldcortex-realtime@latest'], { encoding: 'utf-8', env: spawnEnv, timeout: 120000 });
|
|
1230
|
+
if (installResult.status !== 0) {
|
|
1231
|
+
console.error(' ✗ install failed:');
|
|
1232
|
+
if (installResult.stderr)
|
|
1233
|
+
console.error(installResult.stderr);
|
|
1234
|
+
if (installResult.stdout)
|
|
1235
|
+
console.error(installResult.stdout);
|
|
1236
|
+
console.error('');
|
|
1237
|
+
console.error('CRITICAL: uninstall succeeded but reinstall failed. The plugin is currently uninstalled.');
|
|
1238
|
+
if (configSnapshot.raw) {
|
|
1239
|
+
console.error('Your previous OpenClaw config has been backed up — see the safety backup line above.');
|
|
1240
|
+
}
|
|
1241
|
+
console.error('Try again with: openclaw plugins install @drakon-systems/shieldcortex-realtime@latest');
|
|
1242
|
+
process.exit(1);
|
|
1243
|
+
}
|
|
1244
|
+
console.log(' ✓ install succeeded');
|
|
1245
|
+
console.log('');
|
|
1246
|
+
// Step 5: Restore the customer's plugin config snapshot.
|
|
1247
|
+
if (configSnapshot.entry || configSnapshot.allowed) {
|
|
1248
|
+
try {
|
|
1249
|
+
const current = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
1250
|
+
const plugins = (current.plugins ?? {});
|
|
1251
|
+
plugins.entries = plugins.entries ?? {};
|
|
1252
|
+
plugins.allow = Array.isArray(plugins.allow) ? plugins.allow : [];
|
|
1253
|
+
// Restore the customer's entries.<id> subtree (preserves config,
|
|
1254
|
+
// enabled flag, anything else they had set).
|
|
1255
|
+
if (configSnapshot.entry !== null) {
|
|
1256
|
+
plugins.entries[pluginId] = configSnapshot.entry;
|
|
1257
|
+
}
|
|
1258
|
+
// Restore allowlist membership.
|
|
1259
|
+
if (configSnapshot.allowed && !plugins.allow.includes(pluginId)) {
|
|
1260
|
+
plugins.allow.push(pluginId);
|
|
1261
|
+
}
|
|
1262
|
+
current.plugins = plugins;
|
|
1263
|
+
// Atomic write.
|
|
1264
|
+
const tmp = `${configPath}.tmp`;
|
|
1265
|
+
fs.writeFileSync(tmp, JSON.stringify(current, null, 2), 'utf-8');
|
|
1266
|
+
fs.renameSync(tmp, configPath);
|
|
1267
|
+
console.log('Restored customer plugin config:');
|
|
1268
|
+
if (configSnapshot.entry)
|
|
1269
|
+
console.log(` ✓ plugins.entries.${pluginId} restored`);
|
|
1270
|
+
if (configSnapshot.allowed)
|
|
1271
|
+
console.log(` ✓ plugins.allow membership restored`);
|
|
1272
|
+
}
|
|
1273
|
+
catch (err) {
|
|
1274
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1275
|
+
console.error(`Warning: could not restore config — ${msg}`);
|
|
1276
|
+
console.error('Your previous config is in the safety backup file (see snapshot section above).');
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1279
|
+
console.log('');
|
|
1280
|
+
console.log('Repair complete. Restart the OpenClaw gateway to load the fresh plugin install.');
|
|
1281
|
+
}
|
|
1018
1282
|
export async function handleOpenClawCommand(subcommand, extraArgs = []) {
|
|
1019
1283
|
const noHooks = extraArgs.includes('--no-hooks');
|
|
1020
1284
|
const noPlugins = extraArgs.includes('--no-plugins');
|
|
@@ -1029,13 +1293,21 @@ export async function handleOpenClawCommand(subcommand, extraArgs = []) {
|
|
|
1029
1293
|
case 'status':
|
|
1030
1294
|
await openClawHookStatus();
|
|
1031
1295
|
break;
|
|
1296
|
+
case 'repair':
|
|
1297
|
+
await repairOpenClawPlugin();
|
|
1298
|
+
break;
|
|
1032
1299
|
default:
|
|
1033
|
-
console.log('Usage: shieldcortex openclaw <install|uninstall|status>');
|
|
1300
|
+
console.log('Usage: shieldcortex openclaw <install|uninstall|status|repair>');
|
|
1034
1301
|
console.log('');
|
|
1035
1302
|
console.log('Install options:');
|
|
1036
1303
|
console.log(' --no-hooks Skip hook installation (useful in Docker/CI)');
|
|
1037
1304
|
console.log(' --no-plugins Skip plugin installation (useful in Docker/CI)');
|
|
1038
1305
|
console.log(' --no-gateway-restart Skip the auto gateway restart after install');
|
|
1306
|
+
console.log('');
|
|
1307
|
+
console.log('Repair: diagnose + safely fix duplicate-plugin-id state surfaced by');
|
|
1308
|
+
console.log('`shieldcortex doctor`. Preserves the customer\'s OpenClaw-side plugin');
|
|
1309
|
+
console.log('config (interceptor settings, cloud API key, allowlist) across the');
|
|
1310
|
+
console.log('uninstall+reinstall round-trip needed for sticky cases.');
|
|
1039
1311
|
process.exit(1);
|
|
1040
1312
|
}
|
|
1041
1313
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shieldcortex",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.26.0",
|
|
4
4
|
"description": "Trustworthy memory and security for AI agents. Recall debugging, review queue, OpenClaw session capture, and memory poisoning defence for Claude Code, Codex, OpenClaw, LangChain, and MCP agents.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
File without changes
|
|
File without changes
|