actshield 0.9.0__py3-none-any.whl
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.
- actshield/__init__.py +439 -0
- actshield/__main__.py +46 -0
- actshield/agents/__init__.py +12 -0
- actshield/agents/agent.py +200 -0
- actshield/agents/identity.py +114 -0
- actshield/api/__init__.py +34 -0
- actshield/api/models.py +198 -0
- actshield/api/server.py +669 -0
- actshield/api/service.py +599 -0
- actshield/approval/__init__.py +15 -0
- actshield/approval/approval.py +164 -0
- actshield/cli/__init__.py +8 -0
- actshield/cli/graph.py +49 -0
- actshield/cli/main.py +802 -0
- actshield/cli/shell.py +406 -0
- actshield/cli/theme.py +110 -0
- actshield/client.py +757 -0
- actshield/config.py +88 -0
- actshield/context/__init__.py +14 -0
- actshield/context/context.py +161 -0
- actshield/context/provenance.py +108 -0
- actshield/context/taint.py +48 -0
- actshield/decisions/decision.py +74 -0
- actshield/delegation/__init__.py +11 -0
- actshield/delegation/authority.py +63 -0
- actshield/delegation/delegation.py +180 -0
- actshield/demo.py +139 -0
- actshield/doctor.py +94 -0
- actshield/drift/__init__.py +27 -0
- actshield/drift/drift_engine.py +149 -0
- actshield/drift/drift_models.py +63 -0
- actshield/evaluation/__init__.py +1 -0
- actshield/evaluation/cases/__init__.py +1 -0
- actshield/evaluation/eval_suite.py +254 -0
- actshield/forensics/__init__.py +53 -0
- actshield/forensics/access_graph.py +216 -0
- actshield/forensics/authority_graph.py +186 -0
- actshield/forensics/delegation_graph.py +119 -0
- actshield/forensics/explanation.py +254 -0
- actshield/forensics/models.py +488 -0
- actshield/forensics/queries.py +367 -0
- actshield/forensics/serializers.py +68 -0
- actshield/forensics/service.py +310 -0
- actshield/forensics/snapshots.py +174 -0
- actshield/gates/__init__.py +13 -0
- actshield/gates/gate_models.py +46 -0
- actshield/gates/security_gate.py +191 -0
- actshield/gateway/__init__.py +13 -0
- actshield/gateway/http.py +191 -0
- actshield/gateway/mcp.py +292 -0
- actshield/incidents/__init__.py +25 -0
- actshield/incidents/incident.py +94 -0
- actshield/incidents/incident_engine.py +163 -0
- actshield/incidents/incident_rules.py +116 -0
- actshield/incidents/incident_state.py +58 -0
- actshield/integrations/__init__.py +24 -0
- actshield/integrations/ai_secura.py +169 -0
- actshield/integrations/ai_secura_analysis.py +236 -0
- actshield/integrations/apiris.py +122 -0
- actshield/integrations/few_shot.py +104 -0
- actshield/integrations/ollama_adapter.py +538 -0
- actshield/integrations/prompts/__init__.py +1 -0
- actshield/integrations/prompts/examples/__init__.py +1 -0
- actshield/integrations/security_packet.py +82 -0
- actshield/llm_config.py +89 -0
- actshield/offensive/__init__.py +95 -0
- actshield/offensive/adaptive/__init__.py +22 -0
- actshield/offensive/adaptive/adaptive_engine.py +165 -0
- actshield/offensive/adaptive/attack_selector.py +51 -0
- actshield/offensive/adaptive/boundary_search.py +99 -0
- actshield/offensive/adaptive/campaign_memory.py +123 -0
- actshield/offensive/adaptive/feedback.py +84 -0
- actshield/offensive/adaptive/mutation_planner.py +57 -0
- actshield/offensive/attack.py +78 -0
- actshield/offensive/campaign.py +219 -0
- actshield/offensive/corpus.py +155 -0
- actshield/offensive/engine.py +466 -0
- actshield/offensive/evaluator.py +116 -0
- actshield/offensive/evidence.py +63 -0
- actshield/offensive/generator.py +128 -0
- actshield/offensive/mutation.py +101 -0
- actshield/offensive/results.py +77 -0
- actshield/offensive/safety.py +80 -0
- actshield/offensive/strategies/__init__.py +22 -0
- actshield/offensive/strategies/authority_escalation.py +100 -0
- actshield/offensive/strategies/base.py +34 -0
- actshield/offensive/strategies/context_manipulation.py +100 -0
- actshield/offensive/strategies/data_exfiltration.py +100 -0
- actshield/offensive/strategies/delegation_attacks.py +100 -0
- actshield/offensive/strategies/mcp_attacks.py +100 -0
- actshield/offensive/strategies/prompt_injection.py +100 -0
- actshield/offensive/strategies/tool_poisoning.py +100 -0
- actshield/offensive/target.py +113 -0
- actshield/offensive/vulnerable_target.py +121 -0
- actshield/persistence/__init__.py +18 -0
- actshield/persistence/siem.py +102 -0
- actshield/persistence/storage.py +240 -0
- actshield/policy/__init__.py +12 -0
- actshield/policy/evaluator.py +294 -0
- actshield/policy/intent.py +113 -0
- actshield/policy/policy.py +48 -0
- actshield/posture/__init__.py +26 -0
- actshield/posture/posture_engine.py +186 -0
- actshield/posture/posture_models.py +152 -0
- actshield/posture/posture_rules.py +137 -0
- actshield/providers/__init__.py +32 -0
- actshield/providers/anthropic_provider.py +146 -0
- actshield/providers/base.py +160 -0
- actshield/providers/gemini_provider.py +133 -0
- actshield/providers/null_provider.py +40 -0
- actshield/providers/ollama_provider.py +135 -0
- actshield/providers/openai_provider.py +142 -0
- actshield/providers/registry.py +244 -0
- actshield/py.typed +0 -0
- actshield/response/__init__.py +14 -0
- actshield/response/response_actions.py +39 -0
- actshield/response/response_audit.py +32 -0
- actshield/response/response_engine.py +139 -0
- actshield/risk/models.py +104 -0
- actshield/serve.py +117 -0
- actshield/static/404.html +1 -0
- actshield/static/__next.__PAGE__.txt +24 -0
- actshield/static/__next._full.txt +20 -0
- actshield/static/__next._tree.txt +4 -0
- actshield/static/_next/static/Yp_swxN-C9UoCRNOwkYnY/_buildManifest.js +11 -0
- actshield/static/_next/static/Yp_swxN-C9UoCRNOwkYnY/_clientMiddlewareManifest.js +1 -0
- actshield/static/_next/static/Yp_swxN-C9UoCRNOwkYnY/_ssgManifest.js +1 -0
- actshield/static/_next/static/chunks/09kny2eqjc2or.js +1 -0
- actshield/static/_next/static/chunks/0c1zba1u9whdp.js +1 -0
- actshield/static/_next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- actshield/static/_next/static/chunks/0dbjjeg01x25o.js +1 -0
- actshield/static/_next/static/chunks/0duobs55ne238.js +1 -0
- actshield/static/_next/static/chunks/0iaz41l6068e4.js +1 -0
- actshield/static/_next/static/chunks/0mjhyv72x2idp.js +1 -0
- actshield/static/_next/static/chunks/0nelpqfu_ciq6.js +1 -0
- actshield/static/_next/static/chunks/0p1bci9ch797v.js +1 -0
- actshield/static/_next/static/chunks/0tld_ygho5tgm.js +1 -0
- actshield/static/_next/static/chunks/0w1-y7oni66j9.js +1 -0
- actshield/static/_next/static/chunks/10537zyl427zj.js +1 -0
- actshield/static/_next/static/chunks/11pc_jkl3aggn.js +1 -0
- actshield/static/_next/static/chunks/16k7nw0b3t8ys.js +1 -0
- actshield/static/_next/static/chunks/19mx3mg6lkumu.js +1 -0
- actshield/static/_next/static/chunks/1_8p47b-kxg2a.js +1 -0
- actshield/static/_next/static/chunks/1dszjozwfqegx.js +1 -0
- actshield/static/_next/static/chunks/1h43jcb90-m2r.js +22 -0
- actshield/static/_next/static/chunks/1ly04cvt_wh_j.js +1 -0
- actshield/static/_next/static/chunks/1odxrypuwuwp_.js +1 -0
- actshield/static/_next/static/chunks/1oes4c35qz5ku.js +1 -0
- actshield/static/_next/static/chunks/1ow883jl4ln-r.js +16 -0
- actshield/static/_next/static/chunks/1po7bna1as8tc.js +1 -0
- actshield/static/_next/static/chunks/1rsh0og8ifkzx.js +1 -0
- actshield/static/_next/static/chunks/1v0lwzv-859z_.js +1 -0
- actshield/static/_next/static/chunks/25iat2epwx25a.js +1 -0
- actshield/static/_next/static/chunks/25uvt4s2f39a4.js +1 -0
- actshield/static/_next/static/chunks/27t_qfc-3_lzs.js +1 -0
- actshield/static/_next/static/chunks/28bkmy8mez7gm.js +1 -0
- actshield/static/_next/static/chunks/2b6brmw_drw1p.js +1 -0
- actshield/static/_next/static/chunks/2fnhtxi4j6vge.js +1 -0
- actshield/static/_next/static/chunks/2p087eftxemg4.js +6 -0
- actshield/static/_next/static/chunks/2s8pao_z8pgtq.js +1 -0
- actshield/static/_next/static/chunks/2yj7ooc2c-zpg.js +1 -0
- actshield/static/_next/static/chunks/3-mrrr8udt5tk.js +1 -0
- actshield/static/_next/static/chunks/310vm2bl3xxpt.js +31 -0
- actshield/static/_next/static/chunks/35mvsv251jx1r.css +3 -0
- actshield/static/_next/static/chunks/370vf0oetlsx9.js +1 -0
- actshield/static/_next/static/chunks/3e-2m72tyo556.js +1 -0
- actshield/static/_next/static/chunks/3fntmmi971322.js +1 -0
- actshield/static/_next/static/chunks/3fzw-g0hycl2c.js +1 -0
- actshield/static/_next/static/chunks/3lopq3lhmcjxg.js +129 -0
- actshield/static/_next/static/chunks/3mpe2jejel0v2.css +1 -0
- actshield/static/_next/static/chunks/3t8o4f2lzr2sf.js +1 -0
- actshield/static/_next/static/chunks/3y-v1neyllne5.js +1 -0
- actshield/static/_next/static/chunks/43oiwy8mx6cs1.js +1 -0
- actshield/static/_next/static/chunks/turbopack-23wzuebcy_lxm.js +1 -0
- actshield/static/_next/static/media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2 +0 -0
- actshield/static/_next/static/media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2 +0 -0
- actshield/static/_next/static/media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2 +0 -0
- actshield/static/_next/static/media/5476f68d60460930-s.2uwcyprjm3xu3.woff2 +0 -0
- actshield/static/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2 +0 -0
- actshield/static/_next/static/media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2 +0 -0
- actshield/static/_next/static/media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2 +0 -0
- actshield/static/_next/static/media/favicon.2vob68tjqpejf.ico +0 -0
- actshield/static/_not-found/__next._full.txt +17 -0
- actshield/static/_not-found/__next._not-found/__PAGE__.txt +23 -0
- actshield/static/_not-found/__next._tree.txt +3 -0
- actshield/static/_not-found.html +1 -0
- actshield/static/_not-found.txt +17 -0
- actshield/static/access/matrix/__next._full.txt +24 -0
- actshield/static/access/matrix/__next._tree.txt +4 -0
- actshield/static/access/matrix/__next.access/matrix/__PAGE__.txt +30 -0
- actshield/static/access/matrix.html +1 -0
- actshield/static/access/matrix.txt +24 -0
- actshield/static/activity/__next._full.txt +22 -0
- actshield/static/activity/__next._tree.txt +4 -0
- actshield/static/activity/__next.activity/__PAGE__.txt +27 -0
- actshield/static/activity.html +1 -0
- actshield/static/activity.txt +22 -0
- actshield/static/agents/__next._full.txt +22 -0
- actshield/static/agents/__next._tree.txt +4 -0
- actshield/static/agents/__next.agents/__PAGE__.txt +27 -0
- actshield/static/agents.html +1 -0
- actshield/static/agents.txt +22 -0
- actshield/static/ai-secura/__next._full.txt +22 -0
- actshield/static/ai-secura/__next._tree.txt +4 -0
- actshield/static/ai-secura/__next.ai-secura/__PAGE__.txt +27 -0
- actshield/static/ai-secura.html +1 -0
- actshield/static/ai-secura.txt +22 -0
- actshield/static/api/__next._full.txt +22 -0
- actshield/static/api/__next._tree.txt +4 -0
- actshield/static/api/__next.api/__PAGE__.txt +27 -0
- actshield/static/api.html +15 -0
- actshield/static/api.txt +22 -0
- actshield/static/apiris/__next._full.txt +22 -0
- actshield/static/apiris/__next._tree.txt +4 -0
- actshield/static/apiris/__next.apiris/__PAGE__.txt +27 -0
- actshield/static/apiris.html +1 -0
- actshield/static/apiris.txt +22 -0
- actshield/static/attack-graph/__next._full.txt +23 -0
- actshield/static/attack-graph/__next._tree.txt +5 -0
- actshield/static/attack-graph/__next.attack-graph/__PAGE__.txt +28 -0
- actshield/static/attack-graph.html +2 -0
- actshield/static/attack-graph.txt +23 -0
- actshield/static/campaigns/__next._full.txt +22 -0
- actshield/static/campaigns/__next._tree.txt +4 -0
- actshield/static/campaigns/__next.campaigns/__PAGE__.txt +27 -0
- actshield/static/campaigns.html +1 -0
- actshield/static/campaigns.txt +22 -0
- actshield/static/context/__next._full.txt +22 -0
- actshield/static/context/__next._tree.txt +4 -0
- actshield/static/context/__next.context/__PAGE__.txt +27 -0
- actshield/static/context.html +1 -0
- actshield/static/context.txt +22 -0
- actshield/static/dashboard/__next._full.txt +22 -0
- actshield/static/dashboard/__next._tree.txt +4 -0
- actshield/static/dashboard/__next.dashboard/__PAGE__.txt +27 -0
- actshield/static/dashboard.html +1 -0
- actshield/static/dashboard.txt +22 -0
- actshield/static/delegations/__next._full.txt +22 -0
- actshield/static/delegations/__next._tree.txt +4 -0
- actshield/static/delegations/__next.delegations/__PAGE__.txt +27 -0
- actshield/static/delegations.html +1 -0
- actshield/static/delegations.txt +22 -0
- actshield/static/demo/__next._full.txt +22 -0
- actshield/static/demo/__next._tree.txt +4 -0
- actshield/static/demo/__next.demo/__PAGE__.txt +27 -0
- actshield/static/demo.html +1 -0
- actshield/static/demo.txt +22 -0
- actshield/static/drift/__next._full.txt +22 -0
- actshield/static/drift/__next._tree.txt +4 -0
- actshield/static/drift/__next.drift/__PAGE__.txt +27 -0
- actshield/static/drift.html +1 -0
- actshield/static/drift.txt +22 -0
- actshield/static/favicon.ico +0 -0
- actshield/static/file.svg +1 -0
- actshield/static/forensics/__next._full.txt +22 -0
- actshield/static/forensics/__next._tree.txt +4 -0
- actshield/static/forensics/__next.forensics/__PAGE__.txt +27 -0
- actshield/static/forensics.html +1 -0
- actshield/static/forensics.txt +22 -0
- actshield/static/globe.svg +1 -0
- actshield/static/incidents/__next._full.txt +22 -0
- actshield/static/incidents/__next._tree.txt +4 -0
- actshield/static/incidents/__next.incidents/__PAGE__.txt +27 -0
- actshield/static/incidents.html +1 -0
- actshield/static/incidents.txt +22 -0
- actshield/static/index.html +3 -0
- actshield/static/index.txt +20 -0
- actshield/static/logo.png +0 -0
- actshield/static/metrics/__next._full.txt +22 -0
- actshield/static/metrics/__next._tree.txt +4 -0
- actshield/static/metrics/__next.metrics/__PAGE__.txt +27 -0
- actshield/static/metrics.html +1 -0
- actshield/static/metrics.txt +22 -0
- actshield/static/next.svg +1 -0
- actshield/static/offensive/__next._full.txt +22 -0
- actshield/static/offensive/__next._tree.txt +4 -0
- actshield/static/offensive/__next.offensive/__PAGE__.txt +27 -0
- actshield/static/offensive.html +1 -0
- actshield/static/offensive.txt +22 -0
- actshield/static/policies/__next._full.txt +22 -0
- actshield/static/policies/__next._tree.txt +4 -0
- actshield/static/policies/__next.policies/__PAGE__.txt +27 -0
- actshield/static/policies.html +1 -0
- actshield/static/policies.txt +22 -0
- actshield/static/posture/__next._full.txt +22 -0
- actshield/static/posture/__next._tree.txt +4 -0
- actshield/static/posture/__next.posture/__PAGE__.txt +27 -0
- actshield/static/posture.html +1 -0
- actshield/static/posture.txt +22 -0
- actshield/static/regressions/__next._full.txt +22 -0
- actshield/static/regressions/__next._tree.txt +4 -0
- actshield/static/regressions/__next.regressions/__PAGE__.txt +27 -0
- actshield/static/regressions.html +1 -0
- actshield/static/regressions.txt +22 -0
- actshield/static/reports/__next._full.txt +22 -0
- actshield/static/reports/__next._tree.txt +4 -0
- actshield/static/reports/__next.reports/__PAGE__.txt +27 -0
- actshield/static/reports.html +1 -0
- actshield/static/reports.txt +22 -0
- actshield/static/resources/__next._full.txt +22 -0
- actshield/static/resources/__next._tree.txt +4 -0
- actshield/static/resources/__next.resources/__PAGE__.txt +27 -0
- actshield/static/resources.html +1 -0
- actshield/static/resources.txt +22 -0
- actshield/static/security-gates/__next._full.txt +22 -0
- actshield/static/security-gates/__next._tree.txt +4 -0
- actshield/static/security-gates/__next.security-gates/__PAGE__.txt +27 -0
- actshield/static/security-gates.html +1 -0
- actshield/static/security-gates.txt +22 -0
- actshield/static/settings/__next._full.txt +22 -0
- actshield/static/settings/__next._tree.txt +4 -0
- actshield/static/settings/__next.settings/__PAGE__.txt +27 -0
- actshield/static/settings.html +1 -0
- actshield/static/settings.txt +22 -0
- actshield/static/tasks/__next._full.txt +22 -0
- actshield/static/tasks/__next._tree.txt +4 -0
- actshield/static/tasks/__next.tasks/__PAGE__.txt +27 -0
- actshield/static/tasks.html +1 -0
- actshield/static/tasks.txt +22 -0
- actshield/static/threats/__next._full.txt +22 -0
- actshield/static/threats/__next._tree.txt +4 -0
- actshield/static/threats/__next.threats/__PAGE__.txt +27 -0
- actshield/static/threats.html +1 -0
- actshield/static/threats.txt +22 -0
- actshield/static/tools/__next._full.txt +22 -0
- actshield/static/tools/__next._tree.txt +4 -0
- actshield/static/tools/__next.tools/__PAGE__.txt +27 -0
- actshield/static/tools.html +1 -0
- actshield/static/tools.txt +22 -0
- actshield/static/traces/__next._full.txt +22 -0
- actshield/static/traces/__next._tree.txt +4 -0
- actshield/static/traces/__next.traces/__PAGE__.txt +27 -0
- actshield/static/traces.html +1 -0
- actshield/static/traces.txt +22 -0
- actshield/static/vercel.svg +1 -0
- actshield/static/window.svg +1 -0
- actshield/tasks/__init__.py +6 -0
- actshield/tasks/task.py +143 -0
- actshield/threatmodel/__init__.py +70 -0
- actshield/threatmodel/actors.py +210 -0
- actshield/threatmodel/analyzer.py +131 -0
- actshield/threatmodel/assets.py +167 -0
- actshield/threatmodel/boundaries.py +165 -0
- actshield/threatmodel/exporters.py +49 -0
- actshield/threatmodel/mitigations.py +209 -0
- actshield/threatmodel/models.py +80 -0
- actshield/threatmodel/report.py +341 -0
- actshield/threatmodel/scenarios.py +212 -0
- actshield/threatmodel/scoring.py +66 -0
- actshield/threatmodel/threats.py +387 -0
- actshield/tools/__init__.py +20 -0
- actshield/tools/interceptor.py +256 -0
- actshield/tools/tool.py +71 -0
- actshield/tracing/__init__.py +38 -0
- actshield/tracing/correlation.py +173 -0
- actshield/tracing/events.py +75 -0
- actshield/tracing/tracer.py +305 -0
- actshield/watch.py +129 -0
- actshield-0.9.0.dist-info/METADATA +57 -0
- actshield-0.9.0.dist-info/RECORD +366 -0
- actshield-0.9.0.dist-info/WHEEL +5 -0
- actshield-0.9.0.dist-info/entry_points.txt +4 -0
- actshield-0.9.0.dist-info/top_level.txt +2 -0
- agentguard/__init__.py +39 -0
- agentguard/__main__.py +8 -0
- agentguard/py.typed +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="inter_6750fec-module__y2_5qG__variable h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/35mvsv251jx1r.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/310vm2bl3xxpt.js"/><script src="/_next/static/chunks/19mx3mg6lkumu.js" async=""></script><script src="/_next/static/chunks/27t_qfc-3_lzs.js" async=""></script><script src="/_next/static/chunks/1h43jcb90-m2r.js" async=""></script><script src="/_next/static/chunks/turbopack-23wzuebcy_lxm.js" async=""></script><script src="/_next/static/chunks/3fntmmi971322.js" async=""></script><script src="/_next/static/chunks/25uvt4s2f39a4.js" async=""></script><script src="/_next/static/chunks/43oiwy8mx6cs1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap" as="style"/><title>ActShield — Security Control Plane for Autonomous AI</title><meta name="description" content="ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems."/><meta name="keywords" content="AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI"/><meta name="robots" content="noindex, nofollow"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body class="min-h-full antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen overflow-hidden bg-slate-50 text-slate-900"><aside class="w-64 min-h-screen bg-white border-r border-slate-200 flex flex-col flex-shrink-0 select-none"><div class="h-14 px-5 border-b border-slate-200 flex items-center justify-between"><a class="flex items-center gap-2.5" href="/dashboard"><div class="w-7 h-7 rounded-md bg-slate-900 text-white flex items-center justify-center font-bold text-xs shadow-xs">🛡️</div><div><div class="text-sm font-bold text-slate-900 tracking-tight leading-none">ActShield</div><div class="text-[10px] text-slate-500 font-medium tracking-wider mt-0.5">SECURITY CONTROL PLANE</div></div></a></div><nav class="flex-1 overflow-y-auto py-3 px-3 space-y-4"><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>OVERVIEW</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/dashboard"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield text-slate-400" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><span class="truncate">Command Center</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/activity"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity text-slate-400" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="truncate">Live Activity</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>OPERATIONS</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/agents"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users text-slate-400" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg><span class="truncate">Agents</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/tasks"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-check-big lucide-check-square text-slate-400" aria-hidden="true"><path d="M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344"></path><path d="m9 11 3 3L22 4"></path></svg><span class="truncate">Tasks</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/delegations"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share-2 text-slate-400" aria-hidden="true"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"></line><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"></line></svg><span class="truncate">Delegations</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/resources"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database text-slate-400" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="truncate">Resources</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/access/matrix"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grid-3x3 lucide-grid lucide-grid-3-x-3 text-slate-400" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M3 9h18"></path><path d="M3 15h18"></path><path d="M9 3v18"></path><path d="M15 3v18"></path></svg><span class="truncate">Access Matrix</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>SECURITY</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors bg-sky-50 text-sky-900 border border-sky-200/80 font-semibold" href="/context"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text text-sky-700" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span class="truncate">Context & Provenance</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/tools"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench text-slate-400" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"></path></svg><span class="truncate">Tool / MCP Security</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/policies"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock text-slate-400" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><span class="truncate">Policies</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/threats"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert text-slate-400" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg><span class="truncate">Threat Model</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/ai-secura"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain text-slate-400" aria-hidden="true"><path d="M12 18V5"></path><path d="M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"></path><path d="M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"></path><path d="M17.997 5.125a4 4 0 0 1 2.526 5.77"></path><path d="M18 18a4 4 0 0 0 2-7.464"></path><path d="M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"></path><path d="M6 18a4 4 0 0 1-2-7.464"></path><path d="M6.003 5.125a4 4 0 0 0-2.526 5.77"></path></svg><span class="truncate">AI Security</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/apiris"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap text-slate-400" aria-hidden="true"><path d="M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z"></path></svg><span class="truncate">API Intelligence</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>INVESTIGATION</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/attack-graph"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network text-slate-400" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><span class="truncate">Attack Graph</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/traces"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search text-slate-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span class="truncate">Trace Explorer</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/incidents"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert lucide-alert-triangle text-slate-400" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><span class="truncate">Incidents</span></div><span class="text-[9px] font-bold px-1.5 py-0.2 rounded bg-slate-100 text-slate-600 border border-slate-200">0 OPEN</span></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/forensics"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-microscope text-slate-400" aria-hidden="true"><path d="M6 18h8"></path><path d="M3 22h18"></path><path d="M14 22a7 7 0 1 0 0-14h-1"></path><path d="M9 14h2"></path><path d="M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z"></path><path d="M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3"></path></svg><span class="truncate">Forensics</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/drift"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-compass text-slate-400" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></path></svg><span class="truncate">Behavioral Drift</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>VALIDATION</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/campaigns"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-swords text-slate-400" aria-hidden="true"><path d="m13 19 6-6"></path><path d="M14.5 17.5 3.586 6.586A2 2 0 013 5.172V3h2.172a2 2 0 011.414.586L17.5 14.5"></path><path d="m14.828 6.172 2.586-2.586A2 2 0 0118.828 3H21v2.172a2 2 0 01-.586 1.414l-2.586 2.586"></path><path d="m16 16 4 4"></path><path d="m19 21 2-2"></path><path d="m5 14 4 4"></path><path d="m5 21-2-2"></path><path d="M7.5 16.5 4 20"></path></svg><span class="truncate">Attack Campaigns</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/offensive"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flask-conical text-slate-400" aria-hidden="true"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"></path><path d="M6.453 15h11.094"></path><path d="M8.5 2h7"></path></svg><span class="truncate">Offensive Validation</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/regressions"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw text-slate-400" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg><span class="truncate">Regressions</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/security-gates"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock text-slate-400" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><span class="truncate">Security Gates</span></div><span class="text-[9px] font-bold px-1.5 py-0.2 rounded bg-emerald-50 text-emerald-700 border border-emerald-200">PASS</span></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>REPORTING</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/posture"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column lucide-bar-chart-3 text-slate-400" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg><span class="truncate">Security Posture</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/reports"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-chart-column-increasing lucide-file-bar-chart text-slate-400" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M8 18v-2"></path><path d="M12 18v-4"></path><path d="M16 18v-6"></path></svg><span class="truncate">Reports</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>SYSTEM</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/settings"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings text-slate-400" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="truncate">Settings</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/demo"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-vertical lucide-sliders text-slate-400" aria-hidden="true"><path d="M10 8h4"></path><path d="M12 21v-9"></path><path d="M12 8V3"></path><path d="M17 16h4"></path><path d="M19 12V3"></path><path d="M19 21v-5"></path><path d="M3 14h4"></path><path d="M5 10V3"></path><path d="M5 21v-7"></path></svg><span class="truncate">Integrations</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/api"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml lucide-code-2 text-slate-400" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg><span class="truncate">API Reference</span></div></a></div></div></nav><div class="p-3 border-t border-slate-200 bg-slate-50/50 space-y-1.5 text-xs text-slate-600"><div class="flex items-center justify-between text-[11px]"><span class="font-medium text-slate-700">Enforcement Mode</span><span class="font-mono font-semibold text-emerald-800 bg-emerald-50 border border-emerald-200 px-1.5 py-0.5 rounded text-[10px]">STRICT</span></div><div class="flex items-center justify-between text-[11px]"><span class="text-slate-500">Engine Invariants</span><span class="text-emerald-700 font-semibold text-[10px]">✓ FAIL-SAFE</span></div></div></aside><div class="flex-1 flex flex-col min-w-0 overflow-hidden"><header class="h-14 bg-white border-b border-slate-200 flex items-center justify-between px-5 sticky top-0 z-40 shadow-xs"><div class="flex items-center gap-2 text-xs text-slate-500 min-w-0"><a class="font-semibold text-slate-800 hover:text-sky-700 transition-colors flex items-center gap-1.5 flex-shrink-0" href="/dashboard"><div class="w-5 h-5 rounded bg-sky-600 text-white flex items-center justify-center font-bold text-[10px]">AS</div><span>ActShield</span></a><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right text-slate-400 flex-shrink-0" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><span class="font-medium text-slate-900 truncate capitalize">Context & Provenance</span></div><div class="flex-1 max-w-md mx-6 hidden md:block"><div class="relative"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3 top-1/2 -translate-y-1/2 text-slate-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input type="text" placeholder="Search agents, traces, incidents, attacks…" class="w-full pl-9 pr-12 py-1.5 text-xs bg-slate-50 border border-slate-200 rounded-md text-slate-800 placeholder:text-slate-400 focus:bg-white focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500 transition-all" value=""/><kbd class="absolute right-2.5 top-1/2 -translate-y-1/2 px-1.5 py-0.5 text-[9px] font-mono text-slate-400 bg-slate-100 border border-slate-200 rounded">⌘K</kbd></div></div><div class="flex items-center gap-3 flex-shrink-0"><button class="flex items-center gap-1.5 px-2.5 py-1 rounded text-[11px] font-mono border transition-colors cursor-pointer bg-slate-50 border-slate-200 text-slate-500" title="FastAPI backend offline — displaying cached/demo data (Click to recheck)"><span class="w-1.5 h-1.5 rounded-full bg-slate-400"></span><span class="font-semibold">CHECKING…</span></button><div class="hidden sm:flex items-center gap-1 px-2 py-0.5 rounded text-[10px] font-semibold tracking-wider bg-slate-100 border border-slate-200 text-slate-700"><span>● LOCAL</span></div><button class="relative p-1.5 rounded text-slate-500 hover:text-slate-800 hover:bg-slate-100 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg><span class="absolute top-1 right-1 w-2 h-2 bg-sky-600 rounded-full"></span></button><div class="h-4 w-px bg-slate-200"></div><div class="flex items-center gap-2 pl-1 text-xs"><div class="w-7 h-7 rounded-full bg-slate-800 text-white flex items-center justify-center font-medium text-[11px]">TA</div><div class="hidden lg:block text-left leading-tight"><div class="font-semibold text-slate-900 text-xs">Tarun</div><div class="text-[10px] text-slate-500">Security Admin</div></div></div></div></header><main class="flex-1 overflow-y-auto"><div class="max-w-[1600px] mx-auto"><div class="mb-6 pb-4 border-b border-slate-200"><nav class="flex items-center gap-1.5 text-xs text-slate-500 mb-2"><a class="hover:text-slate-800 transition-colors" href="/dashboard">Security</a><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right text-slate-400" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><span class="text-slate-900 font-medium">Context & Provenance</span></nav><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3"><div><div class="flex items-center gap-2.5"><h1 class="text-xl font-semibold text-slate-900 tracking-tight">Context & Provenance</h1></div><p class="mt-1 text-xs text-slate-500 max-w-3xl leading-relaxed">Track the origin, cryptographic provenance, taint propagation, and deterministic security boundaries of every piece of context entering an autonomous agent workflow.</p></div><div class="flex items-center gap-2 flex-shrink-0"><div class="flex items-center gap-2"><span class="text-xs text-slate-500">Live Interception: <strong class="text-emerald-700 font-semibold">ACTIVE</strong></span></div></div></div></div><div class="bg-white border border-slate-200 rounded-lg p-3 mb-4 shadow-sm flex flex-col md:flex-row md:items-center justify-between gap-3"><div class="flex flex-wrap items-center gap-2.5 flex-1"><div class="relative flex-1 min-w-[200px] max-w-sm"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-2.5 top-1/2 -translate-y-1/2 text-slate-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input type="text" placeholder="Search by ID, source, agent, content…" class="w-full pl-8 pr-3 py-1.5 text-xs bg-slate-50 border border-slate-200 rounded-md text-slate-800 placeholder:text-slate-400 focus:bg-white focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500 transition-all" value=""/></div><div class="flex items-center gap-1.5"><select class="text-xs bg-slate-50 border border-slate-200 rounded-md px-2.5 py-1.5 text-slate-700 font-medium focus:bg-white focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500 transition-all cursor-pointer"><option value="ALL" selected="">All Sources</option><option value="External MCP">External MCP</option><option value="User Input">User Input</option><option value="Database Query">Database Query</option><option value="Agent Message">Agent Message</option><option value="RAG Vector Store">RAG Vector Store</option></select></div><div class="flex items-center gap-1.5"><select class="text-xs bg-slate-50 border border-slate-200 rounded-md px-2.5 py-1.5 text-slate-700 font-medium focus:bg-white focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500 transition-all cursor-pointer"><option value="ALL" selected="">All Trust Levels</option><option value="TRUSTED">TRUSTED</option><option value="HIGH">HIGH</option><option value="MEDIUM">MEDIUM</option><option value="UNTRUSTED">UNTRUSTED</option></select></div><div class="flex items-center gap-1.5"><select class="text-xs bg-slate-50 border border-slate-200 rounded-md px-2.5 py-1.5 text-slate-700 font-medium focus:bg-white focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500 transition-all cursor-pointer"><option value="ALL" selected="">All Taint States</option><option value="CLEAN">CLEAN</option><option value="TAINTED">TAINTED</option><option value="CRITICAL">CRITICAL</option></select></div><button class="flex items-center gap-1 text-xs text-slate-500 hover:text-slate-800 px-2 py-1.5 rounded hover:bg-slate-100 transition-colors" title="Reset Filters"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg><span>Reset</span></button></div><div class="flex items-center gap-3 self-end md:self-auto text-xs text-slate-500"><span class="font-mono text-slate-600"><strong class="text-slate-900">7</strong> total</span></div></div><div class="bg-white border border-slate-200 rounded-lg shadow-sm overflow-hidden flex flex-col"><div class="overflow-x-auto"><table class="w-full text-left border-collapse text-xs"><thead><tr class="bg-slate-50 border-b border-slate-200"><th style="width:120px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Context ID</th><th style="width:140px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Source</th><th class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Origin URI / Channel</th><th class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Target Agent</th><th style="width:110px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Trust Level</th><th style="width:110px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Taint State</th><th style="width:100px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Decision</th><th style="width:90px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-right">Time</th></tr></thead><tbody class="divide-y divide-slate-100"><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_001</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">User Input</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">web_portal_form</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>planner_v1</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>TRUSTED</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>CLEAN</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:12:04</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_002</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">Database Query</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">postgresql://finance_ledger</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>analysis_agent_001</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>HIGH</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>CLEAN</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:14:22</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_003</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">Agent Message</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">orchestrator_v2</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>research_agent_002</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-blue-50 text-blue-700 border border-blue-200"><span class="w-1.5 h-1.5 rounded-full bg-blue-500"></span>MEDIUM</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>TAINTED</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>BLOCK</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:16:10</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_004</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">System Policy</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">agentguard_policy_engine</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>orchestrator_v2</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>TRUSTED</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>CLEAN</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:16:45</span></td></tr><tr class="transition-colors bg-sky-50/80 font-medium cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_005</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">External MCP</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">mcp://external-research.io/search</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>orchestrator_v2</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-500"></span>UNTRUSTED</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>TAINTED</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>BLOCK</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:17:02</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_006</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">HTTP Webhook</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">https://api.thirdparty-feed.com/v1</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>crawler_bot</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-blue-50 text-blue-700 border border-blue-200"><span class="w-1.5 h-1.5 rounded-full bg-blue-500"></span>MEDIUM</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>CLEAN</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-blue-50 text-blue-700 border border-blue-200"><span class="w-1.5 h-1.5 rounded-full bg-blue-600"></span>MONITOR</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:18:30</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900 hover:text-sky-700 underline decoration-slate-300">ctx_007</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-medium text-slate-800">RAG Vector Store</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500 truncate max-w-[200px] block">qdrant://compliance_kb</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1 font-mono text-[11px] text-slate-700 bg-slate-100 px-1.5 py-0.5 rounded"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user text-slate-400" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>analysis_agent_001</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>TRUSTED</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-500"></span>CLEAN</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-right"><span class="text-slate-400">15:19:15</span></td></tr></tbody></table></div></div></div><!--$--><!--/$--></main></div></div><script src="/_next/static/chunks/310vm2bl3xxpt.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n4:I[74952,[\"/_next/static/chunks/3fntmmi971322.js\",\"/_next/static/chunks/25uvt4s2f39a4.js\"],\"default\"]\n5:I[83026,[\"/_next/static/chunks/3fntmmi971322.js\",\"/_next/static/chunks/25uvt4s2f39a4.js\"],\"default\"]\n6:I[47257,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ClientPageRoot\"]\n7:I[3173,[\"/_next/static/chunks/3fntmmi971322.js\",\"/_next/static/chunks/25uvt4s2f39a4.js\",\"/_next/static/chunks/43oiwy8mx6cs1.js\"],\"default\"]\na:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\n11:I[68027,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/35mvsv251jx1r.css\",\"style\"]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500\u0026display=swap\",\"style\"]\n0:{\"P\":null,\"c\":[\"\",\"context\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"context\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/35mvsv251jx1r.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3fntmmi971322.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"inter_6750fec-module__y2_5qG__variable h-full\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/25uvt4s2f39a4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-slate-50 text-slate-900\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex-1 flex flex-col min-w-0 overflow-hidden\",\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-y-auto\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/43oiwy8mx6cs1.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/35mvsv251jx1r.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Yp_swxN-C9UoCRNOwkYnY\"}\n8:{}\n9:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n12:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\nc:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"ActShield — Security Control Plane for Autonomous AI\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L12\",\"5\",{}]]\n"])</script></body></html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
4
|
+
4:I[74952,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
5
|
+
5:I[83026,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
6
|
+
6:I[47257,["/_next/static/chunks/3fntmmi971322.js"],"ClientPageRoot"]
|
|
7
|
+
7:I[3173,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js","/_next/static/chunks/43oiwy8mx6cs1.js"],"default"]
|
|
8
|
+
a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"]
|
|
9
|
+
b:"$Sreact.suspense"
|
|
10
|
+
d:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"]
|
|
11
|
+
f:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
|
|
12
|
+
11:I[68027,["/_next/static/chunks/3fntmmi971322.js"],"default",1]
|
|
13
|
+
:HL["/_next/static/chunks/35mvsv251jx1r.css","style"]
|
|
14
|
+
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
15
|
+
:HL["https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","style"]
|
|
16
|
+
0:{"P":null,"c":["","context"],"q":"","i":false,"f":[[["",{"children":["context",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"inter_6750fec-module__y2_5qG__variable h-full","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/25uvt4s2f39a4.js","async":true,"nonce":"$undefined"}]],["$","div",null,{"className":"flex h-screen overflow-hidden bg-slate-50 text-slate-900","children":[["$","$L4",null,{}],["$","div",null,{"className":"flex-1 flex flex-col min-w-0 overflow-hidden","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 overflow-y-auto","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/43oiwy8mx6cs1.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"Yp_swxN-C9UoCRNOwkYnY"}
|
|
17
|
+
8:{}
|
|
18
|
+
9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
12:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
|
|
21
|
+
c:null
|
|
22
|
+
10:[["$","title","0",{"children":"ActShield — Security Control Plane for Autonomous AI"}],["$","meta","1",{"name":"description","content":"ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems."}],["$","meta","2",{"name":"keywords","content":"AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI"}],["$","meta","3",{"name":"robots","content":"noindex, nofollow"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L12","5",{}]]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
4
|
+
4:I[74952,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
5
|
+
5:I[83026,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
6
|
+
6:I[47257,["/_next/static/chunks/3fntmmi971322.js"],"ClientPageRoot"]
|
|
7
|
+
7:I[30257,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js","/_next/static/chunks/0duobs55ne238.js","/_next/static/chunks/2b6brmw_drw1p.js","/_next/static/chunks/0w1-y7oni66j9.js","/_next/static/chunks/0nelpqfu_ciq6.js"],"default"]
|
|
8
|
+
a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"]
|
|
9
|
+
b:"$Sreact.suspense"
|
|
10
|
+
d:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"]
|
|
11
|
+
f:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
|
|
12
|
+
11:I[68027,["/_next/static/chunks/3fntmmi971322.js"],"default",1]
|
|
13
|
+
:HL["/_next/static/chunks/35mvsv251jx1r.css","style"]
|
|
14
|
+
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
15
|
+
:HL["https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","style"]
|
|
16
|
+
0:{"P":null,"c":["","dashboard"],"q":"","i":false,"f":[[["",{"children":["dashboard",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"inter_6750fec-module__y2_5qG__variable h-full","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/25uvt4s2f39a4.js","async":true,"nonce":"$undefined"}]],["$","div",null,{"className":"flex h-screen overflow-hidden bg-slate-50 text-slate-900","children":[["$","$L4",null,{}],["$","div",null,{"className":"flex-1 flex flex-col min-w-0 overflow-hidden","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 overflow-y-auto","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0duobs55ne238.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2b6brmw_drw1p.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0w1-y7oni66j9.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0nelpqfu_ciq6.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"Yp_swxN-C9UoCRNOwkYnY"}
|
|
17
|
+
8:{}
|
|
18
|
+
9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
12:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
|
|
21
|
+
c:null
|
|
22
|
+
10:[["$","title","0",{"children":"ActShield — Security Control Plane for Autonomous AI"}],["$","meta","1",{"name":"description","content":"ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems."}],["$","meta","2",{"name":"keywords","content":"AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI"}],["$","meta","3",{"name":"robots","content":"noindex, nofollow"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L12","5",{}]]
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
:HL["/_next/static/chunks/35mvsv251jx1r.css","style"]
|
|
2
|
+
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
|
+
:HL["https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","style"]
|
|
4
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"Yp_swxN-C9UoCRNOwkYnY"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[47257,["/_next/static/chunks/3fntmmi971322.js"],"ClientPageRoot"]
|
|
3
|
+
3:I[30257,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js","/_next/static/chunks/0duobs55ne238.js","/_next/static/chunks/2b6brmw_drw1p.js","/_next/static/chunks/0w1-y7oni66j9.js","/_next/static/chunks/0nelpqfu_ciq6.js"],"default"]
|
|
4
|
+
6:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"]
|
|
5
|
+
7:"$Sreact.suspense"
|
|
6
|
+
b:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"]
|
|
7
|
+
c:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
|
|
8
|
+
d:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
|
|
9
|
+
f:I[74952,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
10
|
+
10:I[83026,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
11
|
+
11:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
12
|
+
12:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
13
|
+
:HL["/_next/static/chunks/35mvsv251jx1r.css","style"]
|
|
14
|
+
:HL["https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","style"]
|
|
15
|
+
a:X
|
|
16
|
+
0:{"buildId":"Yp_swxN-C9UoCRNOwkYnY","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0duobs55ne238.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/2b6brmw_drw1p.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/0w1-y7oni66j9.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0nelpqfu_ciq6.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":"$@9","staleTime":"$a","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$Lb",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"ActShield — Security Control Plane for Autonomous AI"}],["$","meta","1",{"name":"description","content":"ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems."}],["$","meta","2",{"name":"keywords","content":"AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI"}],["$","meta","3",{"name":"robots","content":"noindex, nofollow"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Ld","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":"$@e","staleTime":"$a","varyParams":null},{"rsc":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/25uvt4s2f39a4.js","async":true}]],["$","div",null,{"className":"flex h-screen overflow-hidden bg-slate-50 text-slate-900","children":[["$","$Lf",null,{}],["$","div",null,{"className":"flex-1 flex flex-col min-w-0 overflow-hidden","children":[["$","$L10",null,{}],["$","main",null,{"className":"flex-1 overflow-y-auto","children":["$","$L11",null,{"parallelRouterKey":"children","template":["$","$L12",null,{}]}]}]]}]]}]]}],"isPartial":"$@13","staleTime":"$a","varyParams":null},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true}]],["$","html",null,{"lang":"en","className":"inter_6750fec-module__y2_5qG__variable h-full","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full antialiased","children":["$","$L11",null,{"parallelRouterKey":"children","template":["$","$L12",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":"$@14","staleTime":"$a","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@15","rootVaryParams":null,"needsRuntimeRequest":"$@16"}
|
|
17
|
+
4:{}
|
|
18
|
+
5:"$0:data:0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
8:null
|
|
20
|
+
a:300
|
|
21
|
+
16:true
|
|
22
|
+
a:C
|
|
23
|
+
15:0
|
|
24
|
+
e:"$undefined"
|
|
25
|
+
13:"$undefined"
|
|
26
|
+
14:"$undefined"
|
|
27
|
+
9:"$undefined"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="inter_6750fec-module__y2_5qG__variable h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/35mvsv251jx1r.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/310vm2bl3xxpt.js"/><script src="/_next/static/chunks/19mx3mg6lkumu.js" async=""></script><script src="/_next/static/chunks/27t_qfc-3_lzs.js" async=""></script><script src="/_next/static/chunks/1h43jcb90-m2r.js" async=""></script><script src="/_next/static/chunks/turbopack-23wzuebcy_lxm.js" async=""></script><script src="/_next/static/chunks/3fntmmi971322.js" async=""></script><script src="/_next/static/chunks/25uvt4s2f39a4.js" async=""></script><script src="/_next/static/chunks/0duobs55ne238.js" async=""></script><script src="/_next/static/chunks/2b6brmw_drw1p.js" async=""></script><script src="/_next/static/chunks/0w1-y7oni66j9.js" async=""></script><script src="/_next/static/chunks/0nelpqfu_ciq6.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap" as="style"/><title>ActShield — Security Control Plane for Autonomous AI</title><meta name="description" content="ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems."/><meta name="keywords" content="AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI"/><meta name="robots" content="noindex, nofollow"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body class="min-h-full antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen overflow-hidden bg-slate-50 text-slate-900"><aside class="w-64 min-h-screen bg-white border-r border-slate-200 flex flex-col flex-shrink-0 select-none"><div class="h-14 px-5 border-b border-slate-200 flex items-center justify-between"><a class="flex items-center gap-2.5" href="/dashboard"><div class="w-7 h-7 rounded-md bg-slate-900 text-white flex items-center justify-center font-bold text-xs shadow-xs">🛡️</div><div><div class="text-sm font-bold text-slate-900 tracking-tight leading-none">ActShield</div><div class="text-[10px] text-slate-500 font-medium tracking-wider mt-0.5">SECURITY CONTROL PLANE</div></div></a></div><nav class="flex-1 overflow-y-auto py-3 px-3 space-y-4"><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>OVERVIEW</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors bg-sky-50 text-sky-900 border border-sky-200/80 font-semibold" href="/dashboard"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield text-sky-700" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><span class="truncate">Command Center</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/activity"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity text-slate-400" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="truncate">Live Activity</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>OPERATIONS</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/agents"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users text-slate-400" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg><span class="truncate">Agents</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/tasks"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-check-big lucide-check-square text-slate-400" aria-hidden="true"><path d="M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344"></path><path d="m9 11 3 3L22 4"></path></svg><span class="truncate">Tasks</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/delegations"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share-2 text-slate-400" aria-hidden="true"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"></line><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"></line></svg><span class="truncate">Delegations</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/resources"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database text-slate-400" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="truncate">Resources</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/access/matrix"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grid-3x3 lucide-grid lucide-grid-3-x-3 text-slate-400" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M3 9h18"></path><path d="M3 15h18"></path><path d="M9 3v18"></path><path d="M15 3v18"></path></svg><span class="truncate">Access Matrix</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>SECURITY</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/context"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text text-slate-400" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span class="truncate">Context & Provenance</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/tools"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench text-slate-400" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"></path></svg><span class="truncate">Tool / MCP Security</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/policies"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock text-slate-400" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><span class="truncate">Policies</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/threats"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert text-slate-400" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg><span class="truncate">Threat Model</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/ai-secura"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain text-slate-400" aria-hidden="true"><path d="M12 18V5"></path><path d="M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"></path><path d="M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"></path><path d="M17.997 5.125a4 4 0 0 1 2.526 5.77"></path><path d="M18 18a4 4 0 0 0 2-7.464"></path><path d="M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"></path><path d="M6 18a4 4 0 0 1-2-7.464"></path><path d="M6.003 5.125a4 4 0 0 0-2.526 5.77"></path></svg><span class="truncate">AI Security</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/apiris"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap text-slate-400" aria-hidden="true"><path d="M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z"></path></svg><span class="truncate">API Intelligence</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>INVESTIGATION</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/attack-graph"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network text-slate-400" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><span class="truncate">Attack Graph</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/traces"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search text-slate-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span class="truncate">Trace Explorer</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/incidents"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert lucide-alert-triangle text-slate-400" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><span class="truncate">Incidents</span></div><span class="text-[9px] font-bold px-1.5 py-0.2 rounded bg-slate-100 text-slate-600 border border-slate-200">0 OPEN</span></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/forensics"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-microscope text-slate-400" aria-hidden="true"><path d="M6 18h8"></path><path d="M3 22h18"></path><path d="M14 22a7 7 0 1 0 0-14h-1"></path><path d="M9 14h2"></path><path d="M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z"></path><path d="M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3"></path></svg><span class="truncate">Forensics</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/drift"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-compass text-slate-400" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></path></svg><span class="truncate">Behavioral Drift</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>VALIDATION</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/campaigns"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-swords text-slate-400" aria-hidden="true"><path d="m13 19 6-6"></path><path d="M14.5 17.5 3.586 6.586A2 2 0 013 5.172V3h2.172a2 2 0 011.414.586L17.5 14.5"></path><path d="m14.828 6.172 2.586-2.586A2 2 0 0118.828 3H21v2.172a2 2 0 01-.586 1.414l-2.586 2.586"></path><path d="m16 16 4 4"></path><path d="m19 21 2-2"></path><path d="m5 14 4 4"></path><path d="m5 21-2-2"></path><path d="M7.5 16.5 4 20"></path></svg><span class="truncate">Attack Campaigns</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/offensive"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flask-conical text-slate-400" aria-hidden="true"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"></path><path d="M6.453 15h11.094"></path><path d="M8.5 2h7"></path></svg><span class="truncate">Offensive Validation</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/regressions"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw text-slate-400" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg><span class="truncate">Regressions</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/security-gates"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock text-slate-400" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><span class="truncate">Security Gates</span></div><span class="text-[9px] font-bold px-1.5 py-0.2 rounded bg-emerald-50 text-emerald-700 border border-emerald-200">PASS</span></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>REPORTING</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/posture"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column lucide-bar-chart-3 text-slate-400" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg><span class="truncate">Security Posture</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/reports"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-chart-column-increasing lucide-file-bar-chart text-slate-400" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M8 18v-2"></path><path d="M12 18v-4"></path><path d="M16 18v-6"></path></svg><span class="truncate">Reports</span></div></a></div></div><div><button type="button" class="w-full flex items-center justify-between px-2 py-1 text-[10px] font-bold tracking-wider text-slate-400 hover:text-slate-600 uppercase"><span>SYSTEM</span><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="mt-1 space-y-0.5"><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/settings"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings text-slate-400" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="truncate">Settings</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/demo"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-vertical lucide-sliders text-slate-400" aria-hidden="true"><path d="M10 8h4"></path><path d="M12 21v-9"></path><path d="M12 8V3"></path><path d="M17 16h4"></path><path d="M19 12V3"></path><path d="M19 21v-5"></path><path d="M3 14h4"></path><path d="M5 10V3"></path><path d="M5 21v-7"></path></svg><span class="truncate">Integrations</span></div></a><a class="flex items-center justify-between px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors text-slate-600 hover:bg-slate-100/80 hover:text-slate-900" href="/api"><div class="flex items-center gap-2.5 min-w-0"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml lucide-code-2 text-slate-400" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg><span class="truncate">API Reference</span></div></a></div></div></nav><div class="p-3 border-t border-slate-200 bg-slate-50/50 space-y-1.5 text-xs text-slate-600"><div class="flex items-center justify-between text-[11px]"><span class="font-medium text-slate-700">Enforcement Mode</span><span class="font-mono font-semibold text-emerald-800 bg-emerald-50 border border-emerald-200 px-1.5 py-0.5 rounded text-[10px]">STRICT</span></div><div class="flex items-center justify-between text-[11px]"><span class="text-slate-500">Engine Invariants</span><span class="text-emerald-700 font-semibold text-[10px]">✓ FAIL-SAFE</span></div></div></aside><div class="flex-1 flex flex-col min-w-0 overflow-hidden"><header class="h-14 bg-white border-b border-slate-200 flex items-center justify-between px-5 sticky top-0 z-40 shadow-xs"><div class="flex items-center gap-2 text-xs text-slate-500 min-w-0"><a class="font-semibold text-slate-800 hover:text-sky-700 transition-colors flex items-center gap-1.5 flex-shrink-0" href="/dashboard"><div class="w-5 h-5 rounded bg-sky-600 text-white flex items-center justify-center font-bold text-[10px]">AS</div><span>ActShield</span></a><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right text-slate-400 flex-shrink-0" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><span class="font-medium text-slate-900 truncate capitalize">Command Center</span></div><div class="flex-1 max-w-md mx-6 hidden md:block"><div class="relative"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3 top-1/2 -translate-y-1/2 text-slate-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input type="text" placeholder="Search agents, traces, incidents, attacks…" class="w-full pl-9 pr-12 py-1.5 text-xs bg-slate-50 border border-slate-200 rounded-md text-slate-800 placeholder:text-slate-400 focus:bg-white focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500 transition-all" value=""/><kbd class="absolute right-2.5 top-1/2 -translate-y-1/2 px-1.5 py-0.5 text-[9px] font-mono text-slate-400 bg-slate-100 border border-slate-200 rounded">⌘K</kbd></div></div><div class="flex items-center gap-3 flex-shrink-0"><button class="flex items-center gap-1.5 px-2.5 py-1 rounded text-[11px] font-mono border transition-colors cursor-pointer bg-slate-50 border-slate-200 text-slate-500" title="FastAPI backend offline — displaying cached/demo data (Click to recheck)"><span class="w-1.5 h-1.5 rounded-full bg-slate-400"></span><span class="font-semibold">CHECKING…</span></button><div class="hidden sm:flex items-center gap-1 px-2 py-0.5 rounded text-[10px] font-semibold tracking-wider bg-slate-100 border border-slate-200 text-slate-700"><span>● LOCAL</span></div><button class="relative p-1.5 rounded text-slate-500 hover:text-slate-800 hover:bg-slate-100 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg><span class="absolute top-1 right-1 w-2 h-2 bg-sky-600 rounded-full"></span></button><div class="h-4 w-px bg-slate-200"></div><div class="flex items-center gap-2 pl-1 text-xs"><div class="w-7 h-7 rounded-full bg-slate-800 text-white flex items-center justify-center font-medium text-[11px]">TA</div><div class="hidden lg:block text-left leading-tight"><div class="font-semibold text-slate-900 text-xs">Tarun</div><div class="text-[10px] text-slate-500">Security Admin</div></div></div></div></header><main class="flex-1 overflow-y-auto"><div class="max-w-[1600px] mx-auto space-y-6"><div class="mb-6 pb-4 border-b border-slate-200"><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3"><div><div class="flex items-center gap-2.5"><h1 class="text-xl font-semibold text-slate-900 tracking-tight">Security Command Center</h1></div><p class="mt-1 text-xs text-slate-500 max-w-3xl leading-relaxed">Continuous runtime security control plane, telemetry metrics, and deterministic policy enforcement across all autonomous agents.</p></div><div class="flex items-center gap-2 flex-shrink-0"><div class="flex items-center gap-2"><a class="px-3 py-1.5 text-xs font-semibold bg-emerald-50 text-emerald-800 border border-emerald-200 rounded-md hover:bg-emerald-100 transition-colors flex items-center gap-1.5" href="/security-gates"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check lucide-check-circle-2 text-emerald-600" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m16 9-5.5 5.5L8 12"></path></svg><span>CI/CD Quality Gate: PASS</span></a></div></div></div></div><div class="bg-white border border-slate-200 rounded-lg p-5 shadow-sm flex flex-col md:flex-row md:items-center justify-between gap-5 border-l-4 border-l-emerald-500"><div class="flex items-start gap-4"><div class="w-12 h-12 rounded-lg bg-emerald-50 text-emerald-600 border border-emerald-200 flex items-center justify-center flex-shrink-0 font-bold text-xl">A</div><div><div class="flex items-center gap-2"><h2 class="text-lg font-bold text-slate-900 tracking-tight">Security Posture: 98.0 / 100</h2><span class="px-2 py-0.5 rounded text-[10px] font-bold bg-emerald-50 text-emerald-800 border border-emerald-200">HEALTHY</span></div><p class="text-xs text-slate-500 mt-0.5">Deterministic runtime policies active. 0 unauthorized executions across 472 intercepted tool invocations.</p></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-3 text-xs border-t md:border-t-0 md:border-l border-slate-200 pt-3 md:pt-0 md:pl-5"><div><span class="text-[10px] text-slate-400 font-bold uppercase block">Threat Prevention</span><span class="font-mono font-bold text-slate-900">100.0%</span></div><div><span class="text-[10px] text-slate-400 font-bold uppercase block">Delegation Hygiene</span><span class="font-mono font-bold text-slate-900">100.0%</span></div><div><span class="text-[10px] text-slate-400 font-bold uppercase block">Taint Containment</span><span class="font-mono font-bold text-slate-900">100.0%</span></div><div><span class="text-[10px] text-slate-400 font-bold uppercase block">Offensive Immunity</span><span class="font-mono font-bold text-slate-900">100.0%</span></div></div></div><div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-3"><div class="bg-white rounded-lg border border-slate-200 p-4 shadow-sm border-l-4 border-l-emerald-500 flex flex-col justify-between"><div class="flex items-center justify-between gap-2 mb-2"><span class="text-[11px] font-medium tracking-wider uppercase text-slate-500">Active Agents</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users text-slate-400" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg></div><div class="flex items-baseline justify-between gap-2 mt-1"><div class="text-2xl font-bold tracking-tight text-slate-900 font-mono">4</div></div><div class="mt-2 text-xs text-slate-500 truncate">All Contained</div></div><div class="bg-white rounded-lg border border-slate-200 p-4 shadow-sm border-l-4 border-l-emerald-500 flex flex-col justify-between"><div class="flex items-center justify-between gap-2 mb-2"><span class="text-[11px] font-medium tracking-wider uppercase text-slate-500">Active Incidents</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert lucide-alert-triangle text-slate-400" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg></div><div class="flex items-baseline justify-between gap-2 mt-1"><div class="text-2xl font-bold tracking-tight text-slate-900 font-mono">0</div></div><div class="mt-2 text-xs text-slate-500 truncate">0 Critical / High</div></div><div class="bg-white rounded-lg border border-slate-200 p-4 shadow-sm border-l-4 border-l-slate-300 flex flex-col justify-between"><div class="flex items-center justify-between gap-2 mb-2"><span class="text-[11px] font-medium tracking-wider uppercase text-slate-500">Blocked Actions</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert text-slate-400" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg></div><div class="flex items-baseline justify-between gap-2 mt-1"><div class="text-2xl font-bold tracking-tight text-slate-900 font-mono">17</div></div><div class="mt-2 text-xs text-slate-500 truncate">100% Policy Block</div></div><div class="bg-white rounded-lg border border-slate-200 p-4 shadow-sm border-l-4 border-l-emerald-500 flex flex-col justify-between"><div class="flex items-center justify-between gap-2 mb-2"><span class="text-[11px] font-medium tracking-wider uppercase text-slate-500">Drift Alerts</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-compass text-slate-400" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></path></svg></div><div class="flex items-baseline justify-between gap-2 mt-1"><div class="text-2xl font-bold tracking-tight text-slate-900 font-mono">0</div></div><div class="mt-2 text-xs text-slate-500 truncate">Entropy Normal</div></div><div class="bg-white rounded-lg border border-slate-200 p-4 shadow-sm border-l-4 border-l-emerald-500 flex flex-col justify-between"><div class="flex items-center justify-between gap-2 mb-2"><span class="text-[11px] font-medium tracking-wider uppercase text-slate-500">Open Regressions</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw text-slate-400" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg></div><div class="flex items-baseline justify-between gap-2 mt-1"><div class="text-2xl font-bold tracking-tight text-slate-900 font-mono">0</div></div><div class="mt-2 text-xs text-slate-500 truncate">42 Replays Passing</div></div><div class="bg-white rounded-lg border border-slate-200 p-4 shadow-sm border-l-4 border-l-emerald-500 flex flex-col justify-between"><div class="flex items-center justify-between gap-2 mb-2"><span class="text-[11px] font-medium tracking-wider uppercase text-slate-500">Unauthorized DB Calls</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock text-slate-400" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg></div><div class="flex items-baseline justify-between gap-2 mt-1"><div class="text-2xl font-bold tracking-tight text-slate-900 font-mono">0</div></div><div class="mt-2 text-xs text-slate-500 truncate">Zero Sink Bypasses</div></div></div><div class="grid grid-cols-1 lg:grid-cols-3 gap-6"><div class="lg:col-span-2 space-y-3"><div class="flex items-center justify-between"><h3 class="text-sm font-bold text-slate-900 tracking-tight flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity text-slate-500" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span>Real-Time Security Activity</span></h3><a class="text-xs text-sky-700 hover:text-sky-900 font-medium flex items-center gap-1" href="/activity"><span>View all events</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div><div class="bg-white border border-slate-200 rounded-lg shadow-sm overflow-hidden flex flex-col"><div class="overflow-x-auto"><table class="w-full text-left border-collapse text-xs"><thead><tr class="bg-slate-50 border-b border-slate-200"><th style="width:90px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Time</th><th class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Agent</th><th class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Action</th><th class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Protected Resource</th><th style="width:100px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Risk</th><th style="width:90px" class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-left">Decision</th><th class="px-3.5 py-2.5 font-semibold text-slate-600 uppercase tracking-wider text-[10px] text-right">Execution Status</th></tr></thead><tbody class="divide-y divide-slate-100"><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left">15:32:10</td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-mono text-[11px] font-medium text-slate-800 bg-slate-100 px-1.5 py-0.5 rounded">research-agent-001</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900">customer_db.read</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500">customer_pii_vault</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>CRITICAL</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>BLOCK</span></td><td class="px-3.5 py-2.5 text-slate-700 text-right"><span class="font-mono text-[10px] font-bold px-2 py-0.5 rounded text-slate-500 bg-slate-100 border border-slate-200">NOT EXECUTED</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left">15:31:45</td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-mono text-[11px] font-medium text-slate-800 bg-slate-100 px-1.5 py-0.5 rounded">analysis-agent-001</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900">report.generate</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500">internal_reports</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-blue-50 text-blue-700 border border-blue-200"><span class="w-1.5 h-1.5 rounded-full bg-blue-600"></span>LOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-right"><span class="font-mono text-[10px] font-bold px-2 py-0.5 rounded text-emerald-700 bg-emerald-50 border border-emerald-200">EXECUTED</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left">15:30:12</td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-mono text-[11px] font-medium text-slate-800 bg-slate-100 px-1.5 py-0.5 rounded">orchestrator-001</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900">delegate.scope</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500">task_graph</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-blue-50 text-blue-700 border border-blue-200"><span class="w-1.5 h-1.5 rounded-full bg-blue-600"></span>LOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-right"><span class="font-mono text-[10px] font-bold px-2 py-0.5 rounded text-emerald-700 bg-emerald-50 border border-emerald-200">EXECUTED</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left">15:28:55</td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-mono text-[11px] font-medium text-slate-800 bg-slate-100 px-1.5 py-0.5 rounded">external-mcp-bot</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900">http_post</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500">external_webhook</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-orange-50 text-orange-700 border border-orange-200"><span class="w-1.5 h-1.5 rounded-full bg-orange-600"></span>HIGH</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>BLOCK</span></td><td class="px-3.5 py-2.5 text-slate-700 text-right"><span class="font-mono text-[10px] font-bold px-2 py-0.5 rounded text-slate-500 bg-slate-100 border border-slate-200">NOT EXECUTED</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left">15:26:30</td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-mono text-[11px] font-medium text-slate-800 bg-slate-100 px-1.5 py-0.5 rounded">data-sync-002</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900">db.query</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500">financial_ledger</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-amber-50 text-amber-700 border border-amber-200"><span class="w-1.5 h-1.5 rounded-full bg-amber-600"></span>MEDIUM</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-right"><span class="font-mono text-[10px] font-bold px-2 py-0.5 rounded text-emerald-700 bg-emerald-50 border border-emerald-200">EXECUTED</span></td></tr><tr class="transition-colors hover:bg-slate-50/80 cursor-pointer"><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left">15:24:18</td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="font-mono text-[11px] font-medium text-slate-800 bg-slate-100 px-1.5 py-0.5 rounded">research-agent-001</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="font-semibold text-slate-900">web_search</span></td><td class="px-3.5 py-2.5 text-slate-700 font-mono text-[11px] text-left"><span class="text-slate-500">public_web</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-medium bg-blue-50 text-blue-700 border border-blue-200"><span class="w-1.5 h-1.5 rounded-full bg-blue-600"></span>LOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-left"><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200"><span class="w-1.5 h-1.5 rounded-full bg-emerald-600"></span>ALLOW</span></td><td class="px-3.5 py-2.5 text-slate-700 text-right"><span class="font-mono text-[10px] font-bold px-2 py-0.5 rounded text-emerald-700 bg-emerald-50 border border-emerald-200">EXECUTED</span></td></tr></tbody></table></div></div></div><div class="space-y-6"><div class="bg-white border border-slate-200 rounded-lg p-4 shadow-sm"><div class="flex items-center justify-between mb-3"><h4 class="text-xs font-bold uppercase tracking-wider text-slate-500">Hourly Enforcement Trend</h4><span class="text-[10px] text-slate-400 font-mono">Last 6 Hours</span></div><div class="h-44 w-full"><div class="recharts-responsive-container" style="width:100%;height:100%;min-width:0"><div style="width:0;height:0;overflow:visible"></div></div></div></div><div class="bg-white border border-slate-200 rounded-lg p-4 shadow-sm space-y-3"><div class="flex items-center justify-between border-b border-slate-100 pb-2"><h4 class="text-xs font-bold uppercase tracking-wider text-slate-500 flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert lucide-alert-triangle text-amber-500" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><span>Recent Incident Lifecycles</span></h4><a class="text-xs text-sky-700 hover:text-sky-900 font-medium" href="/incidents">Manage</a></div><div class="space-y-2"><div class="p-2.5 rounded border border-slate-100 hover:border-slate-300 transition-colors bg-slate-50/50"><div class="flex items-center justify-between text-xs"><span class="font-mono font-bold text-slate-900">INC-1049</span><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-orange-50 text-orange-700 border border-orange-200"><span class="w-1.5 h-1.5 rounded-full bg-orange-600"></span>HIGH</span></div><div class="text-xs font-semibold text-slate-800 mt-1">Authority Escalation Attempt</div><div class="flex items-center justify-between text-[11px] text-slate-500 mt-1.5 pt-1.5 border-t border-slate-100"><span class="font-mono">research-agent-001</span><span class="px-1.5 py-0.5 rounded text-[10px] font-bold bg-slate-200 text-slate-700">CONTAINED</span></div></div><div class="p-2.5 rounded border border-slate-100 hover:border-slate-300 transition-colors bg-slate-50/50"><div class="flex items-center justify-between text-xs"><span class="font-mono font-bold text-slate-900">INC-1048</span><span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-[11px] font-semibold bg-red-50 text-red-700 border border-red-200"><span class="w-1.5 h-1.5 rounded-full bg-red-600"></span>CRITICAL</span></div><div class="text-xs font-semibold text-slate-800 mt-1">Tainted MCP Prompt Injection</div><div class="flex items-center justify-between text-[11px] text-slate-500 mt-1.5 pt-1.5 border-t border-slate-100"><span class="font-mono">orchestrator-001</span><span class="px-1.5 py-0.5 rounded text-[10px] font-bold bg-slate-200 text-slate-700">CLOSED</span></div></div></div></div></div></div></div><!--$--><!--/$--></main></div></div><script src="/_next/static/chunks/310vm2bl3xxpt.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n4:I[74952,[\"/_next/static/chunks/3fntmmi971322.js\",\"/_next/static/chunks/25uvt4s2f39a4.js\"],\"default\"]\n5:I[83026,[\"/_next/static/chunks/3fntmmi971322.js\",\"/_next/static/chunks/25uvt4s2f39a4.js\"],\"default\"]\n6:I[47257,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ClientPageRoot\"]\n7:I[30257,[\"/_next/static/chunks/3fntmmi971322.js\",\"/_next/static/chunks/25uvt4s2f39a4.js\",\"/_next/static/chunks/0duobs55ne238.js\",\"/_next/static/chunks/2b6brmw_drw1p.js\",\"/_next/static/chunks/0w1-y7oni66j9.js\",\"/_next/static/chunks/0nelpqfu_ciq6.js\"],\"default\"]\na:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\n11:I[68027,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/35mvsv251jx1r.css\",\"style\"]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500\u0026display=swap\",\"style\"]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/35mvsv251jx1r.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3fntmmi971322.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"inter_6750fec-module__y2_5qG__variable h-full\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/25uvt4s2f39a4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-slate-50 text-slate-900\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex-1 flex flex-col min-w-0 overflow-hidden\",\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-y-auto\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0duobs55ne238.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/2b6brmw_drw1p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0w1-y7oni66j9.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0nelpqfu_ciq6.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/35mvsv251jx1r.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Yp_swxN-C9UoCRNOwkYnY\"}\n8:{}\n9:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n12:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\nc:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"ActShield — Security Control Plane for Autonomous AI\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L12\",\"5\",{}]]\n"])</script></body></html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"]
|
|
4
|
+
4:I[74952,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
5
|
+
5:I[83026,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js"],"default"]
|
|
6
|
+
6:I[47257,["/_next/static/chunks/3fntmmi971322.js"],"ClientPageRoot"]
|
|
7
|
+
7:I[30257,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/25uvt4s2f39a4.js","/_next/static/chunks/0duobs55ne238.js","/_next/static/chunks/2b6brmw_drw1p.js","/_next/static/chunks/0w1-y7oni66j9.js","/_next/static/chunks/0nelpqfu_ciq6.js"],"default"]
|
|
8
|
+
a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"]
|
|
9
|
+
b:"$Sreact.suspense"
|
|
10
|
+
d:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"]
|
|
11
|
+
f:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
|
|
12
|
+
11:I[68027,["/_next/static/chunks/3fntmmi971322.js"],"default",1]
|
|
13
|
+
:HL["/_next/static/chunks/35mvsv251jx1r.css","style"]
|
|
14
|
+
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
15
|
+
:HL["https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","style"]
|
|
16
|
+
0:{"P":null,"c":["","dashboard"],"q":"","i":false,"f":[[["",{"children":["dashboard",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"inter_6750fec-module__y2_5qG__variable h-full","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/25uvt4s2f39a4.js","async":true,"nonce":"$undefined"}]],["$","div",null,{"className":"flex h-screen overflow-hidden bg-slate-50 text-slate-900","children":[["$","$L4",null,{}],["$","div",null,{"className":"flex-1 flex flex-col min-w-0 overflow-hidden","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 overflow-y-auto","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0duobs55ne238.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2b6brmw_drw1p.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0w1-y7oni66j9.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0nelpqfu_ciq6.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/35mvsv251jx1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"Yp_swxN-C9UoCRNOwkYnY"}
|
|
17
|
+
8:{}
|
|
18
|
+
9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
12:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
|
|
21
|
+
c:null
|
|
22
|
+
10:[["$","title","0",{"children":"ActShield — Security Control Plane for Autonomous AI"}],["$","meta","1",{"name":"description","content":"ActShield provides identity, authority containment, context provenance, deterministic policy enforcement, threat modeling, and forensic investigation for autonomous and multi-agent AI systems."}],["$","meta","2",{"name":"keywords","content":"AI security,agent security,multi-agent security,MCP security,policy enforcement,LLM security,threat modeling,agentic AI"}],["$","meta","3",{"name":"robots","content":"noindex, nofollow"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L12","5",{}]]
|