shieldcortex 4.27.2 → 4.27.3
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/api/sql-classifier.d.ts +32 -0
- package/dist/api/sql-classifier.js +277 -0
- package/dist/api/visualization-server.js +25 -19
- package/dist/cloud/cli.js +20 -1
- package/dist/cloud/config.js +21 -1
- package/dist/cloud/memory-sync.d.ts +5 -0
- package/dist/cloud/memory-sync.js +5 -1
- package/dist/cloud/verify.js +2 -1
- package/dist/defence/trust/env-detector.d.ts +31 -0
- package/dist/defence/trust/env-detector.js +50 -0
- package/dist/defence/trust/index.d.ts +4 -1
- package/dist/defence/trust/index.js +2 -1
- package/dist/defence/trust/resolve-tool-source.d.ts +27 -0
- package/dist/defence/trust/resolve-tool-source.js +80 -0
- package/dist/server.js +22 -32
- package/package.json +3 -2
- /package/dashboard/.next/standalone/dashboard/.next/static/{x2AmqK_Ci5s40_dIsKhc_ → ObhI00_RVqLccblwYt339}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{x2AmqK_Ci5s40_dIsKhc_ → ObhI00_RVqLccblwYt339}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{x2AmqK_Ci5s40_dIsKhc_ → ObhI00_RVqLccblwYt339}/_ssgManifest.js +0 -0
|
@@ -41,3 +41,34 @@ export declare function resolveSource(declaredSource?: DefenceSource, strictMode
|
|
|
41
41
|
inferred: boolean;
|
|
42
42
|
detection?: EnvDetectionResult;
|
|
43
43
|
};
|
|
44
|
+
export interface CeilingClampResult {
|
|
45
|
+
/** The effective source after clamping (declared if safe, env-inferred otherwise). */
|
|
46
|
+
source: DefenceSource;
|
|
47
|
+
/** True when the declared source claimed higher trust than the runtime environment justifies. */
|
|
48
|
+
clamped: boolean;
|
|
49
|
+
/** Trust score of the declared source (only meaningful when a declared source was passed). */
|
|
50
|
+
declaredScore: number | null;
|
|
51
|
+
/** Trust score the runtime environment actually permits. */
|
|
52
|
+
ceilingScore: number;
|
|
53
|
+
/** The environment-inferred source used as the trust ceiling. */
|
|
54
|
+
ceiling: DefenceSource;
|
|
55
|
+
/** Detection metadata for the environment inference. */
|
|
56
|
+
detection: EnvDetectionResult;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Clamp a caller-declared source against the environment-inferred trust ceiling.
|
|
60
|
+
*
|
|
61
|
+
* MCP callers are arbitrary processes — a prompt-injected agent could claim
|
|
62
|
+
* `{type:'user', identifier:'direct'}` to get trust=1.0 and bypass quarantine.
|
|
63
|
+
* To prevent that, we compute the highest trust the actual runtime allows
|
|
64
|
+
* (from env vars like CLAUDE_CODE_ENTRYPOINT) and refuse any declared source
|
|
65
|
+
* that would score higher.
|
|
66
|
+
*
|
|
67
|
+
* Semantics:
|
|
68
|
+
* - If no declared source: return env-inferred (no clamping).
|
|
69
|
+
* - If declaredScore <= ceilingScore: trust the declared source (allows
|
|
70
|
+
* legitimate downgrades, e.g. an agent labelling input as `email`).
|
|
71
|
+
* - If declaredScore > ceilingScore: drop the declared source and use the
|
|
72
|
+
* env-inferred one, with `clamped: true` so the caller can audit it.
|
|
73
|
+
*/
|
|
74
|
+
export declare function clampSourceToCeiling(declaredSource: DefenceSource | undefined): CeilingClampResult;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* This addresses Phase 1 limitation: "security is opt-in" — with env detection,
|
|
9
9
|
* Claude Code agents get correct trust automatically with zero configuration.
|
|
10
10
|
*/
|
|
11
|
+
import { scoreSource } from './source-scorer.js';
|
|
11
12
|
/**
|
|
12
13
|
* Infer caller source from process environment variables.
|
|
13
14
|
*
|
|
@@ -114,3 +115,52 @@ export function resolveSource(declaredSource, strictMode = false) {
|
|
|
114
115
|
detection,
|
|
115
116
|
};
|
|
116
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Clamp a caller-declared source against the environment-inferred trust ceiling.
|
|
120
|
+
*
|
|
121
|
+
* MCP callers are arbitrary processes — a prompt-injected agent could claim
|
|
122
|
+
* `{type:'user', identifier:'direct'}` to get trust=1.0 and bypass quarantine.
|
|
123
|
+
* To prevent that, we compute the highest trust the actual runtime allows
|
|
124
|
+
* (from env vars like CLAUDE_CODE_ENTRYPOINT) and refuse any declared source
|
|
125
|
+
* that would score higher.
|
|
126
|
+
*
|
|
127
|
+
* Semantics:
|
|
128
|
+
* - If no declared source: return env-inferred (no clamping).
|
|
129
|
+
* - If declaredScore <= ceilingScore: trust the declared source (allows
|
|
130
|
+
* legitimate downgrades, e.g. an agent labelling input as `email`).
|
|
131
|
+
* - If declaredScore > ceilingScore: drop the declared source and use the
|
|
132
|
+
* env-inferred one, with `clamped: true` so the caller can audit it.
|
|
133
|
+
*/
|
|
134
|
+
export function clampSourceToCeiling(declaredSource) {
|
|
135
|
+
const detection = inferSourceFromEnvironment();
|
|
136
|
+
const ceilingScore = scoreSource(detection.source).score;
|
|
137
|
+
if (!declaredSource) {
|
|
138
|
+
return {
|
|
139
|
+
source: detection.source,
|
|
140
|
+
clamped: false,
|
|
141
|
+
declaredScore: null,
|
|
142
|
+
ceilingScore,
|
|
143
|
+
ceiling: detection.source,
|
|
144
|
+
detection,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
const declaredScore = scoreSource(declaredSource).score;
|
|
148
|
+
if (declaredScore > ceilingScore) {
|
|
149
|
+
return {
|
|
150
|
+
source: detection.source,
|
|
151
|
+
clamped: true,
|
|
152
|
+
declaredScore,
|
|
153
|
+
ceilingScore,
|
|
154
|
+
ceiling: detection.source,
|
|
155
|
+
detection,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
source: declaredSource,
|
|
160
|
+
clamped: false,
|
|
161
|
+
declaredScore,
|
|
162
|
+
ceilingScore,
|
|
163
|
+
ceiling: detection.source,
|
|
164
|
+
detection,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
@@ -2,7 +2,10 @@ export { scoreSource } from './source-scorer.js';
|
|
|
2
2
|
export { filterByTrust } from './recall-filter.js';
|
|
3
3
|
export { scoreAgent, getAgentDepth, buildAgentHierarchy } from './agent-scorer.js';
|
|
4
4
|
export { checkAccess } from './access-control.js';
|
|
5
|
-
export { inferSourceFromEnvironment, resolveSource } from './env-detector.js';
|
|
5
|
+
export { inferSourceFromEnvironment, resolveSource, clampSourceToCeiling } from './env-detector.js';
|
|
6
|
+
export type { CeilingClampResult } from './env-detector.js';
|
|
7
|
+
export { resolveToolSource } from './resolve-tool-source.js';
|
|
8
|
+
export type { ResolveToolSourceOptions } from './resolve-tool-source.js';
|
|
6
9
|
export type { AccessPolicy, AccessCheckMemory } from './access-control.js';
|
|
7
10
|
export type { AgentTrustConfig } from './agent-scorer.js';
|
|
8
11
|
export type { EnvDetectionResult } from './env-detector.js';
|
|
@@ -2,4 +2,5 @@ export { scoreSource } from './source-scorer.js';
|
|
|
2
2
|
export { filterByTrust } from './recall-filter.js';
|
|
3
3
|
export { scoreAgent, getAgentDepth, buildAgentHierarchy } from './agent-scorer.js';
|
|
4
4
|
export { checkAccess } from './access-control.js';
|
|
5
|
-
export { inferSourceFromEnvironment, resolveSource } from './env-detector.js';
|
|
5
|
+
export { inferSourceFromEnvironment, resolveSource, clampSourceToCeiling } from './env-detector.js';
|
|
6
|
+
export { resolveToolSource } from './resolve-tool-source.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve and harden the source of an MCP tool call.
|
|
3
|
+
*
|
|
4
|
+
* MCP callers can self-declare any source they like. This module:
|
|
5
|
+
* 1. Always computes the environment-inferred trust ceiling first.
|
|
6
|
+
* 2. Clamps any over-claimed declared source down to that ceiling.
|
|
7
|
+
* 3. Writes a `SOURCE_ELEVATION_BLOCKED` row to defence_audit when a clamp
|
|
8
|
+
* happens, so operators can spot prompt-injection trying to escalate
|
|
9
|
+
* its own trust.
|
|
10
|
+
* 4. Writes a `SOURCE_MISSING` row when no source was declared, preserving
|
|
11
|
+
* the existing visibility into unconfigured callers.
|
|
12
|
+
*/
|
|
13
|
+
import type { DefenceSource } from '../types.js';
|
|
14
|
+
export interface ResolveToolSourceOptions {
|
|
15
|
+
/** Tool name (e.g. 'remember', 'recall') — recorded in the audit reason. */
|
|
16
|
+
toolName: string;
|
|
17
|
+
/** Active project scope, recorded on the audit row. */
|
|
18
|
+
project: string | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the effective source for an MCP tool call.
|
|
22
|
+
*
|
|
23
|
+
* Returns the source the rest of the pipeline should use. When a caller
|
|
24
|
+
* over-claims trust the declared source is dropped, an audit row is written,
|
|
25
|
+
* and the env-inferred source is returned instead.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveToolSource(declaredSource: DefenceSource | undefined, options: ResolveToolSourceOptions): DefenceSource;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve and harden the source of an MCP tool call.
|
|
3
|
+
*
|
|
4
|
+
* MCP callers can self-declare any source they like. This module:
|
|
5
|
+
* 1. Always computes the environment-inferred trust ceiling first.
|
|
6
|
+
* 2. Clamps any over-claimed declared source down to that ceiling.
|
|
7
|
+
* 3. Writes a `SOURCE_ELEVATION_BLOCKED` row to defence_audit when a clamp
|
|
8
|
+
* happens, so operators can spot prompt-injection trying to escalate
|
|
9
|
+
* its own trust.
|
|
10
|
+
* 4. Writes a `SOURCE_MISSING` row when no source was declared, preserving
|
|
11
|
+
* the existing visibility into unconfigured callers.
|
|
12
|
+
*/
|
|
13
|
+
import { clampSourceToCeiling } from './env-detector.js';
|
|
14
|
+
import { logAudit } from '../audit/logger.js';
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the effective source for an MCP tool call.
|
|
17
|
+
*
|
|
18
|
+
* Returns the source the rest of the pipeline should use. When a caller
|
|
19
|
+
* over-claims trust the declared source is dropped, an audit row is written,
|
|
20
|
+
* and the env-inferred source is returned instead.
|
|
21
|
+
*/
|
|
22
|
+
export function resolveToolSource(declaredSource, options) {
|
|
23
|
+
const clampResult = clampSourceToCeiling(declaredSource);
|
|
24
|
+
const { source, clamped, declaredScore, ceilingScore, detection } = clampResult;
|
|
25
|
+
if (clamped && declaredSource) {
|
|
26
|
+
try {
|
|
27
|
+
logAudit({
|
|
28
|
+
memory_id: null,
|
|
29
|
+
project: options.project,
|
|
30
|
+
timestamp: new Date().toISOString(),
|
|
31
|
+
source_type: source.type,
|
|
32
|
+
source_identifier: source.identifier,
|
|
33
|
+
trust_score: ceilingScore,
|
|
34
|
+
sensitivity_level: 'PUBLIC',
|
|
35
|
+
firewall_result: 'BLOCK',
|
|
36
|
+
anomaly_score: 0,
|
|
37
|
+
threat_indicators: JSON.stringify(['privilege_escalation']),
|
|
38
|
+
blocked_patterns: '[]',
|
|
39
|
+
reason: `SOURCE_ELEVATION_BLOCKED: tool=${options.toolName}, ` +
|
|
40
|
+
`declared=${declaredSource.type}:${declaredSource.identifier} (score=${declaredScore}), ` +
|
|
41
|
+
`clamped=${source.type}:${source.identifier} (score=${ceilingScore}) ` +
|
|
42
|
+
`via ${detection.method} (confidence: ${detection.confidence})`,
|
|
43
|
+
fragmentation_score: null,
|
|
44
|
+
pipeline_duration_ms: null,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Audit logging must never break tool execution.
|
|
49
|
+
}
|
|
50
|
+
return source;
|
|
51
|
+
}
|
|
52
|
+
// No declared source — inferred from environment. Preserve the existing
|
|
53
|
+
// SOURCE_MISSING visibility so operators see unconfigured callers.
|
|
54
|
+
if (!declaredSource) {
|
|
55
|
+
try {
|
|
56
|
+
logAudit({
|
|
57
|
+
memory_id: null,
|
|
58
|
+
project: options.project,
|
|
59
|
+
timestamp: new Date().toISOString(),
|
|
60
|
+
source_type: source.type,
|
|
61
|
+
source_identifier: source.identifier,
|
|
62
|
+
trust_score: 0,
|
|
63
|
+
sensitivity_level: 'PUBLIC',
|
|
64
|
+
firewall_result: 'ALLOW',
|
|
65
|
+
anomaly_score: 0,
|
|
66
|
+
threat_indicators: '[]',
|
|
67
|
+
blocked_patterns: '[]',
|
|
68
|
+
reason: `SOURCE_MISSING: tool=${options.toolName}, ` +
|
|
69
|
+
`inferred=${source.type}:${source.identifier} ` +
|
|
70
|
+
`via ${detection.method} (confidence: ${detection.confidence})`,
|
|
71
|
+
fragmentation_score: null,
|
|
72
|
+
pipeline_duration_ms: null,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Audit logging must never break tool execution.
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return source;
|
|
80
|
+
}
|
package/dist/server.js
CHANGED
|
@@ -22,16 +22,22 @@ import { handleGraphQuery, handleGraphEntities, handleGraphExplain } from './too
|
|
|
22
22
|
import { checkDatabaseSize } from './database/init.js';
|
|
23
23
|
import { queryAuditLogs, getAuditStats, getLifetimeStats } from './defence/audit/index.js';
|
|
24
24
|
import { scanExistingMemories } from './defence/scanner/index.js';
|
|
25
|
-
import {
|
|
26
|
-
import { logAudit } from './defence/audit/logger.js';
|
|
25
|
+
import { resolveToolSource as resolveToolSourceImpl } from './defence/trust/resolve-tool-source.js';
|
|
27
26
|
import { scanToolResponse, shouldScanToolResponse } from './defence/tool-response-scanner.js';
|
|
28
27
|
import { getToolResponseScanConfig } from './cloud/config.js';
|
|
29
28
|
import { isKillSwitchActive, getKillSwitchMeta, assertOperationAllowed, activateKillSwitch, deactivateKillSwitch, KillSwitchError, } from './api/control.js';
|
|
30
|
-
// Shared source schema for access control on MCP tools
|
|
29
|
+
// Shared source schema for access control on MCP tools.
|
|
30
|
+
// NOTE: 'user' is intentionally NOT accepted from MCP callers. MCP tools are
|
|
31
|
+
// always invoked by an agent, hook, CLI or API — never by a literal human
|
|
32
|
+
// typing — so accepting type:'user' would let a prompt-injected agent
|
|
33
|
+
// self-attest as the human operator and earn trust=1.0, bypassing the
|
|
34
|
+
// quarantine band and RESTRICTED read gating. The 'user' type still exists
|
|
35
|
+
// internally for things like dashboard-originated writes, but it must never
|
|
36
|
+
// be honoured when it arrives over the MCP transport.
|
|
31
37
|
const sourceParam = z.object({
|
|
32
|
-
type: z.enum(['
|
|
38
|
+
type: z.enum(['cli', 'hook', 'email', 'web', 'agent', 'file', 'api', 'tool_response']),
|
|
33
39
|
identifier: z.string(),
|
|
34
|
-
}).optional().describe('Caller identity for access control (agents should pass this)');
|
|
40
|
+
}).optional().describe('Caller identity for access control (agents should pass this). type:"user" is rejected — MCP is never a human channel.');
|
|
35
41
|
/**
|
|
36
42
|
* Wrap an MCP tool handler to scan its response for threats.
|
|
37
43
|
* Advisory mode: appends a warning but never blocks.
|
|
@@ -67,35 +73,19 @@ function withResponseScan(toolName, handler) {
|
|
|
67
73
|
};
|
|
68
74
|
}
|
|
69
75
|
/**
|
|
70
|
-
* Resolve source for an MCP tool call
|
|
71
|
-
*
|
|
76
|
+
* Resolve source for an MCP tool call.
|
|
77
|
+
*
|
|
78
|
+
* Delegates to the env-ceiling clamp helper, which:
|
|
79
|
+
* - Drops any caller-declared source that claims higher trust than the
|
|
80
|
+
* runtime environment justifies (writes SOURCE_ELEVATION_BLOCKED to audit).
|
|
81
|
+
* - Falls back to env-inferred source when none was declared (writes
|
|
82
|
+
* SOURCE_MISSING to audit for operator visibility).
|
|
72
83
|
*/
|
|
73
84
|
function resolveToolSource(declaredSource, toolName) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
memory_id: null,
|
|
79
|
-
project: getActiveProject(),
|
|
80
|
-
timestamp: new Date().toISOString(),
|
|
81
|
-
source_type: source.type,
|
|
82
|
-
source_identifier: source.identifier,
|
|
83
|
-
trust_score: 0,
|
|
84
|
-
sensitivity_level: 'PUBLIC',
|
|
85
|
-
firewall_result: 'ALLOW',
|
|
86
|
-
anomaly_score: 0,
|
|
87
|
-
threat_indicators: '[]',
|
|
88
|
-
blocked_patterns: '[]',
|
|
89
|
-
reason: `SOURCE_MISSING: tool=${toolName}, inferred=${source.type}:${source.identifier} via ${detection?.method ?? 'default'} (confidence: ${detection?.confidence ?? 'low'})`,
|
|
90
|
-
fragmentation_score: null,
|
|
91
|
-
pipeline_duration_ms: null,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
// Audit logging should never break tool execution
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return source;
|
|
85
|
+
return resolveToolSourceImpl(declaredSource, {
|
|
86
|
+
toolName,
|
|
87
|
+
project: getActiveProject(),
|
|
88
|
+
});
|
|
99
89
|
}
|
|
100
90
|
/**
|
|
101
91
|
* Wrap an MCP tool handler to enforce kill switch lockdown.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shieldcortex",
|
|
3
|
-
"version": "4.27.
|
|
3
|
+
"version": "4.27.3",
|
|
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",
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
"bench:smoke": "SHIELDCORTEX_SKIP_EMBEDDINGS=1 tsx benchmark/longmemeval/run.ts --quiet",
|
|
62
62
|
"audit:security": "npm audit --audit-level=moderate",
|
|
63
63
|
"prepack": "node scripts/ensure-bin-executable.mjs",
|
|
64
|
-
"
|
|
64
|
+
"version": "node scripts/sync-plugin-version.mjs && git add plugins/openclaw/package.json plugins/openclaw/openclaw.plugin.json",
|
|
65
|
+
"prepublishOnly": "node scripts/sync-plugin-version.mjs --check && npm run build"
|
|
65
66
|
},
|
|
66
67
|
"keywords": [
|
|
67
68
|
"ai-memory",
|
|
File without changes
|
|
File without changes
|