actshield 0.9.0__tar.gz → 0.9.1__tar.gz
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-0.9.1/PKG-INFO +266 -0
- actshield-0.9.1/README.md +208 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/__init__.py +1 -1
- {actshield-0.9.0 → actshield-0.9.1}/actshield/cli/main.py +5 -3
- actshield-0.9.1/actshield.egg-info/PKG-INFO +266 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield.egg-info/SOURCES.txt +1 -0
- {actshield-0.9.0 → actshield-0.9.1}/pyproject.toml +1 -1
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_enterprise_hardening_master.py +1 -1
- actshield-0.9.0/PKG-INFO +0 -57
- actshield-0.9.0/actshield.egg-info/PKG-INFO +0 -57
- {actshield-0.9.0 → actshield-0.9.1}/MANIFEST.in +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/__main__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/agents/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/agents/agent.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/agents/identity.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/api/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/api/models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/api/server.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/api/service.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/approval/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/approval/approval.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/cli/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/cli/graph.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/cli/shell.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/cli/theme.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/client.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/config.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/context/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/context/context.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/context/provenance.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/context/taint.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/decisions/decision.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/delegation/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/delegation/authority.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/delegation/delegation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/demo.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/doctor.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/drift/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/drift/drift_engine.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/drift/drift_models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/evaluation/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/evaluation/cases/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/evaluation/eval_suite.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/access_graph.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/authority_graph.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/delegation_graph.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/explanation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/queries.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/serializers.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/service.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/forensics/snapshots.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/gates/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/gates/gate_models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/gates/security_gate.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/gateway/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/gateway/http.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/gateway/mcp.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/incidents/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/incidents/incident.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/incidents/incident_engine.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/incidents/incident_rules.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/incidents/incident_state.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/ai_secura.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/ai_secura_analysis.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/apiris.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/few_shot.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/ollama_adapter.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/prompts/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/prompts/examples/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/integrations/security_packet.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/llm_config.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/adaptive_engine.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/attack_selector.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/boundary_search.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/campaign_memory.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/feedback.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/adaptive/mutation_planner.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/attack.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/campaign.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/corpus.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/engine.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/evaluator.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/evidence.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/generator.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/mutation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/results.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/safety.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/authority_escalation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/base.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/context_manipulation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/data_exfiltration.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/delegation_attacks.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/mcp_attacks.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/prompt_injection.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/strategies/tool_poisoning.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/target.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/offensive/vulnerable_target.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/persistence/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/persistence/siem.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/persistence/storage.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/policy/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/policy/evaluator.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/policy/intent.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/policy/policy.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/posture/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/posture/posture_engine.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/posture/posture_models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/posture/posture_rules.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/anthropic_provider.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/base.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/gemini_provider.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/null_provider.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/ollama_provider.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/openai_provider.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/providers/registry.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/py.typed +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/response/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/response/response_actions.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/response/response_audit.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/response/response_engine.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/risk/models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/serve.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/404.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/__next.__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/Yp_swxN-C9UoCRNOwkYnY/_buildManifest.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/Yp_swxN-C9UoCRNOwkYnY/_clientMiddlewareManifest.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/Yp_swxN-C9UoCRNOwkYnY/_ssgManifest.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/09kny2eqjc2or.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0c1zba1u9whdp.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0cz1d0mv5g_q7.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0dbjjeg01x25o.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0duobs55ne238.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0iaz41l6068e4.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0mjhyv72x2idp.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0nelpqfu_ciq6.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0p1bci9ch797v.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0tld_ygho5tgm.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/0w1-y7oni66j9.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/10537zyl427zj.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/11pc_jkl3aggn.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/16k7nw0b3t8ys.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/19mx3mg6lkumu.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1_8p47b-kxg2a.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1dszjozwfqegx.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1h43jcb90-m2r.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1ly04cvt_wh_j.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1odxrypuwuwp_.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1oes4c35qz5ku.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1ow883jl4ln-r.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1po7bna1as8tc.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1rsh0og8ifkzx.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/1v0lwzv-859z_.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/25iat2epwx25a.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/25uvt4s2f39a4.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/27t_qfc-3_lzs.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/28bkmy8mez7gm.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/2b6brmw_drw1p.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/2fnhtxi4j6vge.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/2p087eftxemg4.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/2s8pao_z8pgtq.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/2yj7ooc2c-zpg.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3-mrrr8udt5tk.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/310vm2bl3xxpt.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/35mvsv251jx1r.css +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/370vf0oetlsx9.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3e-2m72tyo556.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3fntmmi971322.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3fzw-g0hycl2c.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3lopq3lhmcjxg.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3mpe2jejel0v2.css +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3t8o4f2lzr2sf.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/3y-v1neyllne5.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/43oiwy8mx6cs1.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/chunks/turbopack-23wzuebcy_lxm.js +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/5476f68d60460930-s.2uwcyprjm3xu3.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2 +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_next/static/media/favicon.2vob68tjqpejf.ico +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_not-found/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_not-found/__next._not-found/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_not-found/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_not-found.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/_not-found.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/access/matrix/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/access/matrix/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/access/matrix/__next.access/matrix/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/access/matrix.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/access/matrix.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/activity/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/activity/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/activity/__next.activity/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/activity.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/activity.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/agents/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/agents/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/agents/__next.agents/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/agents.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/agents.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/ai-secura/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/ai-secura/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/ai-secura/__next.ai-secura/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/ai-secura.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/ai-secura.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/api/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/api/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/api/__next.api/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/api.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/api.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/apiris/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/apiris/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/apiris/__next.apiris/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/apiris.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/apiris.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/attack-graph/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/attack-graph/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/attack-graph/__next.attack-graph/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/attack-graph.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/attack-graph.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/campaigns/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/campaigns/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/campaigns/__next.campaigns/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/campaigns.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/campaigns.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/context/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/context/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/context/__next.context/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/context.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/context.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/dashboard/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/dashboard/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/dashboard/__next.dashboard/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/dashboard.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/dashboard.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/delegations/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/delegations/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/delegations/__next.delegations/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/delegations.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/delegations.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/demo/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/demo/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/demo/__next.demo/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/demo.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/demo.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/drift/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/drift/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/drift/__next.drift/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/drift.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/drift.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/favicon.ico +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/file.svg +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/forensics/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/forensics/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/forensics/__next.forensics/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/forensics.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/forensics.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/globe.svg +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/incidents/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/incidents/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/incidents/__next.incidents/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/incidents.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/incidents.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/index.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/index.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/logo.png +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/metrics/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/metrics/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/metrics/__next.metrics/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/metrics.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/metrics.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/next.svg +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/offensive/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/offensive/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/offensive/__next.offensive/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/offensive.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/offensive.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/policies/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/policies/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/policies/__next.policies/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/policies.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/policies.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/posture/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/posture/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/posture/__next.posture/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/posture.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/posture.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/regressions/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/regressions/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/regressions/__next.regressions/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/regressions.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/regressions.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/reports/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/reports/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/reports/__next.reports/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/reports.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/reports.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/resources/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/resources/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/resources/__next.resources/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/resources.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/resources.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/security-gates/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/security-gates/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/security-gates/__next.security-gates/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/security-gates.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/security-gates.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/settings/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/settings/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/settings/__next.settings/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/settings.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/settings.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tasks/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tasks/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tasks/__next.tasks/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tasks.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tasks.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/threats/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/threats/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/threats/__next.threats/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/threats.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/threats.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tools/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tools/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tools/__next.tools/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tools.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/tools.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/traces/__next._full.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/traces/__next._tree.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/traces/__next.traces/__PAGE__.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/traces.html +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/traces.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/vercel.svg +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/static/window.svg +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tasks/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tasks/task.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/actors.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/analyzer.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/assets.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/boundaries.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/exporters.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/mitigations.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/report.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/scenarios.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/scoring.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/threatmodel/threats.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tools/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tools/interceptor.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tools/tool.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tracing/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tracing/correlation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tracing/events.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/tracing/tracer.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield/watch.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield.egg-info/dependency_links.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield.egg-info/entry_points.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield.egg-info/requires.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/actshield.egg-info/top_level.txt +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/agentguard/__init__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/agentguard/__main__.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/agentguard/py.typed +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/setup.cfg +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_agents.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_cli_threat.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_context_taint.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_delegation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_e2e_causal_chain.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_embedded_dashboard.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_integrations.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase2_hardening.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase2_multi_agent.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase35_ollama_config.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase35_ollama_live.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase35_prompt_injection.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase3_gateway.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase3_hitl_and_intelligence.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase3_persistence.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase4_attack_models.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase4_cli.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase4_engine_and_evaluator.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase4_safety.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase4_strategies.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase4_vulnerable_remediation.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase5_adaptive.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_phase65_forensics.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_policy.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_providers_and_platform.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_sdk_platform_complete.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_tasks.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_threat_model.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_tools.py +0 -0
- {actshield-0.9.0 → actshield-0.9.1}/tests/test_tracing.py +0 -0
actshield-0.9.1/PKG-INFO
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: actshield
|
|
3
|
+
Version: 0.9.1
|
|
4
|
+
Summary: Enterprise Security Control Plane SDK for Autonomous and Multi-Agent AI Systems
|
|
5
|
+
Author: ActShield Security Team
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/agentguard/agentguard
|
|
8
|
+
Project-URL: Documentation, https://agentguard.dev/docs
|
|
9
|
+
Project-URL: Repository, https://github.com/agentguard/agentguard
|
|
10
|
+
Project-URL: Issue Tracker, https://github.com/agentguard/agentguard/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/agentguard/agentguard/blob/main/CHANGELOG.md
|
|
12
|
+
Keywords: ai-security,multi-agent,provenance,causal-tracing,policy-enforcement,llm-security,taint-tracking,threat-modeling,sdk,cli,security-control-plane,agent-security
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: Information Technology
|
|
16
|
+
Classifier: Intended Audience :: System Administrators
|
|
17
|
+
Classifier: Topic :: Security
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Classifier: Topic :: System :: Monitoring
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Operating System :: OS Independent
|
|
25
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
26
|
+
Classifier: Typing :: Typed
|
|
27
|
+
Requires-Python: >=3.11
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
Requires-Dist: pydantic>=2.5.0
|
|
30
|
+
Requires-Dist: typing-extensions>=4.8.0
|
|
31
|
+
Provides-Extra: cli
|
|
32
|
+
Requires-Dist: rich>=13.7.0; extra == "cli"
|
|
33
|
+
Requires-Dist: typer>=0.12.0; extra == "cli"
|
|
34
|
+
Requires-Dist: click>=8.1.0; extra == "cli"
|
|
35
|
+
Provides-Extra: dev
|
|
36
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
|
|
38
|
+
Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
39
|
+
Requires-Dist: mypy>=1.10.0; extra == "dev"
|
|
40
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
41
|
+
Provides-Extra: server
|
|
42
|
+
Requires-Dist: fastapi>=0.110.0; extra == "server"
|
|
43
|
+
Requires-Dist: uvicorn[standard]>=0.29.0; extra == "server"
|
|
44
|
+
Requires-Dist: httpx>=0.27.0; extra == "server"
|
|
45
|
+
Requires-Dist: pydantic-settings>=2.0.0; extra == "server"
|
|
46
|
+
Provides-Extra: dashboard
|
|
47
|
+
Requires-Dist: actshield[cli,server]; extra == "dashboard"
|
|
48
|
+
Provides-Extra: openai
|
|
49
|
+
Requires-Dist: openai>=1.30.0; extra == "openai"
|
|
50
|
+
Provides-Extra: gemini
|
|
51
|
+
Requires-Dist: google-generativeai>=0.7.0; extra == "gemini"
|
|
52
|
+
Provides-Extra: anthropic
|
|
53
|
+
Requires-Dist: anthropic>=0.28.0; extra == "anthropic"
|
|
54
|
+
Provides-Extra: ollama
|
|
55
|
+
Requires-Dist: httpx>=0.27.0; extra == "ollama"
|
|
56
|
+
Provides-Extra: all
|
|
57
|
+
Requires-Dist: actshield[anthropic,cli,gemini,ollama,openai,server]; extra == "all"
|
|
58
|
+
|
|
59
|
+
# ActShield
|
|
60
|
+
|
|
61
|
+
**The Deterministic AI Security Control Plane & Zero-Trust Reference Monitor for Autonomous and Multi-Agent Systems**
|
|
62
|
+
|
|
63
|
+
[](https://pypi.org/project/actshield/)
|
|
64
|
+
[](https://pypi.org/project/actshield/)
|
|
65
|
+
[](https://github.com/agentguard/agentguard/blob/main/LICENSE)
|
|
66
|
+
[](https://github.com/agentguard/agentguard)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 1. Executive Summary
|
|
71
|
+
|
|
72
|
+
**ActShield** is an open-source, enterprise-grade **AI Security Control Plane and Zero-Trust Reference Monitor** designed specifically for autonomous and multi-agent AI ecosystems (LangChain, CrewAI, AutoGen, LlamaIndex, and custom agent runtimes).
|
|
73
|
+
|
|
74
|
+
As AI agents evolve from passive conversational bots into autonomous software actors capable of reading arbitrary documents, querying production databases, browsing the open web, invoking APIs, and delegating sub-tasks, standard application security controls (firewalls, WAFs, and static IAM) become insufficient.
|
|
75
|
+
|
|
76
|
+
ActShield bridges this fundamental security gap by establishing an active runtime control boundary around agents, ensuring that:
|
|
77
|
+
- **Every action is authenticated** against the agent's explicit, declared capabilities.
|
|
78
|
+
- **Privileges strictly diminish** across delegation trees (monotonicity).
|
|
79
|
+
- **Context tainted by untrusted sources** cannot flow into sensitive execution sinks.
|
|
80
|
+
- **Decisions are deterministic**: Advisory AI reasoners provide risk scores, but **deterministic policy code** renders the final authorization.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 2. The Core Invariant
|
|
85
|
+
|
|
86
|
+
$$\mathbf{LLMs\ Reason;\ Deterministic\ Policies\ Enforce.}$$
|
|
87
|
+
|
|
88
|
+
ActShield enforces a strict architectural division:
|
|
89
|
+
|
|
90
|
+
- **The Advisory Intelligence Layer (AI Secura / Pluggable LLMs)**: Evaluates semantic intent, calculates APIRIS risk metrics, and detects behavioral drift across OpenAI, Gemini, Anthropic, Ollama, Hugging Face, and custom models.
|
|
91
|
+
- **The Deterministic Policy Layer**: Checks capability tokens, verifies context taint markers, assesses delegation boundaries, and enforces binary execution decisions (`ALLOW`, `MONITOR`, `HITL`, `QUARANTINE`, `BLOCK`, `REVOKE`).
|
|
92
|
+
|
|
93
|
+
> **Fail-Safe Guarantee**: If an AI provider encounters a timeout, network failure, or malformed response, ActShield deterministically falls back to **FAIL_CLOSED** (or triggers Human-in-the-Loop review). An AI failure never defaults to an open execution grant.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 3. The 4 MANTA Foundational Principles
|
|
98
|
+
|
|
99
|
+
| Principle | Description |
|
|
100
|
+
|---|---|
|
|
101
|
+
| **1. Monotonic Authority** | $\text{Authority}(\text{Child}) \subseteq \text{Authority}(\text{Parent}) \subseteq \text{DeclaredAuthority}$. Privileges strictly diminish down delegation trees. |
|
|
102
|
+
| **2. Attributable Context Taint** | Untrusted context is tagged `TAINTED`. Tainted contexts cannot trigger sensitive database sinks, shells, or credential access without sanitization. |
|
|
103
|
+
| **3. Non-Bypassable Interception** | Reference monitor intercepts all tool invocations before execution. |
|
|
104
|
+
| **4. Transparent Forensic Causality** | Immutable, correlated traces recording who, what, when, why across 5 stages: `INTENDED` → `REQUESTED` → `ALLOWED` → `ATTEMPTED` → `EXECUTED`. |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 4. Architecture Overview
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Autonomous AI Agents
|
|
112
|
+
(LangChain, CrewAI, AutoGen, LlamaIndex, Custom)
|
|
113
|
+
│
|
|
114
|
+
▼
|
|
115
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
116
|
+
│ ActShield Core SDK │
|
|
117
|
+
│ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────────┐ │
|
|
118
|
+
│ │ Agent Registry │ │ Delegation Monotonic │ │ Context Taint │ │
|
|
119
|
+
│ │ (Cryptographic ID) │ │ Authority Manager │ │ Provenance │ │
|
|
120
|
+
│ └───────────────────────┘ └──────────────────────┘ └──────────────────┘ │
|
|
121
|
+
│ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────────┐ │
|
|
122
|
+
│ │ MCP Security Gateway │ │ HTTP Security Proxy │ │ Tool Interceptor │ │
|
|
123
|
+
│ └───────────────────────┘ └──────────────────────┘ └──────────────────┘ │
|
|
124
|
+
└─────────────────────────────────────┬────────────────────────────────────┘
|
|
125
|
+
│
|
|
126
|
+
▼
|
|
127
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
128
|
+
│ Security Intelligence Layer │
|
|
129
|
+
│ ┌────────────────────────────────────────────────────────────────────┐ │
|
|
130
|
+
│ │ Pluggable AI Secura Reasoners (OpenAI / Gemini / Anthropic / Ollama)│ │
|
|
131
|
+
│ └────────────────────────────────────────────────────────────────────┘ │
|
|
132
|
+
│ ┌────────────────────────────────────────────────────────────────────┐ │
|
|
133
|
+
│ │ APIRIS (API Risk Intelligence Engine) + Baseline Drift Tracker │ │
|
|
134
|
+
│ └────────────────────────────────────────────────────────────────────┘ │
|
|
135
|
+
└─────────────────────────────────────┬────────────────────────────────────┘
|
|
136
|
+
│
|
|
137
|
+
▼
|
|
138
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
139
|
+
│ Deterministic Policy Evaluator │
|
|
140
|
+
│ │
|
|
141
|
+
│ ALLOW │ MONITOR │ HITL │ QUARANTINE │ BLOCK │ REVOKE │
|
|
142
|
+
└─────────────────────────────────────┬────────────────────────────────────┘
|
|
143
|
+
│
|
|
144
|
+
▼
|
|
145
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
146
|
+
│ Evidence & Operational Plane │
|
|
147
|
+
│ ┌───────────────────┐ ┌──────────────────┐ ┌───────────────────────┐ │
|
|
148
|
+
│ │ Causal Forensics │ │ Incident Engine │ │ Continuous Posture │ │
|
|
149
|
+
│ │ & Trace Replay │ │ (7-Stage Cycle) │ │ Scorecard (6 Dims) │ │
|
|
150
|
+
│ └───────────────────┘ └──────────────────┘ └───────────────────────┘ │
|
|
151
|
+
│ ┌───────────────────┐ ┌──────────────────┐ ┌───────────────────────┐ │
|
|
152
|
+
│ │ Threat Modeling │ │ CI/CD Quality │ │ Embedded Next.js │ │
|
|
153
|
+
│ │ (STRIDE + AI) │ │ Security Gates │ │ Control Plane UI │ │
|
|
154
|
+
│ └───────────────────┘ └──────────────────┘ └───────────────────────┘ │
|
|
155
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 5. Installation
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Core package
|
|
164
|
+
pip install actshield
|
|
165
|
+
|
|
166
|
+
# With optional AI intelligence provider support
|
|
167
|
+
pip install actshield[openai]
|
|
168
|
+
pip install actshield[gemini]
|
|
169
|
+
pip install actshield[anthropic]
|
|
170
|
+
pip install actshield[ollama]
|
|
171
|
+
|
|
172
|
+
# Full enterprise suite (CLI + FastAPI Server + All Providers)
|
|
173
|
+
pip install actshield[all]
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 6. Quick Start
|
|
179
|
+
|
|
180
|
+
### Python SDK
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
import asyncio
|
|
184
|
+
from actshield import ActShield, SourceType, TrustLevel
|
|
185
|
+
|
|
186
|
+
# 1. Initialize Control Plane in strict zero-trust mode
|
|
187
|
+
guard = ActShield(mode="strict")
|
|
188
|
+
guard.start()
|
|
189
|
+
|
|
190
|
+
# 2. Register Root Orchestrator
|
|
191
|
+
orchestrator = guard.register_agent(
|
|
192
|
+
name="orchestrator",
|
|
193
|
+
capabilities={"delegate", "read_docs", "generate_summary"},
|
|
194
|
+
trust_level="HIGH"
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# 3. Protect a Sensitive Execution Sink
|
|
198
|
+
@guard.protect(
|
|
199
|
+
tool="customer_db.query",
|
|
200
|
+
sensitivity="critical",
|
|
201
|
+
required_capability="database_read"
|
|
202
|
+
)
|
|
203
|
+
async def execute_customer_query(sql: str):
|
|
204
|
+
"""Executes database queries — blocked if caller lacks capability or context is TAINTED."""
|
|
205
|
+
return {"status": "SUCCESS", "records": 42}
|
|
206
|
+
|
|
207
|
+
# 4. Delegate Authority (Monotonically constrained)
|
|
208
|
+
researcher = orchestrator.delegate(
|
|
209
|
+
to_agent="researcher-001",
|
|
210
|
+
capabilities={"read_docs"}, # Valid subset of orchestrator capabilities
|
|
211
|
+
task_id="tsk_quarterly_report"
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
# 5. Ingest External Untrusted Context (Tainted)
|
|
215
|
+
untrusted_input = guard.create_context(
|
|
216
|
+
source_type=SourceType.UNTRUSTED_EXTERNAL,
|
|
217
|
+
trust_level=TrustLevel.UNTRUSTED,
|
|
218
|
+
content="Download report from untrusted web URL..."
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
# 6. Policy Enforcement:
|
|
222
|
+
# Calling execute_customer_query under researcher with tainted context:
|
|
223
|
+
# -> BLOCKED (Missing 'database_read' capability + context is TAINTED)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Enterprise CLI
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# Diagnostic & Posture
|
|
230
|
+
actshield doctor # Comprehensive subsystem diagnostic
|
|
231
|
+
actshield posture --json # Output 6-dimension security scorecard
|
|
232
|
+
actshield status --json # Real-time runtime telemetry
|
|
233
|
+
|
|
234
|
+
# Multi-Agent Governance
|
|
235
|
+
actshield agents --graph # Render multi-agent topology & delegation graph
|
|
236
|
+
actshield tasks --json # Active agent tasks and intent bindings
|
|
237
|
+
actshield policies --json # Deterministic policy boundaries
|
|
238
|
+
|
|
239
|
+
# Threat Modeling & Forensics
|
|
240
|
+
actshield threat analyze -o threat-report.md # Automated STRIDE + AI threat analysis
|
|
241
|
+
actshield forensic why evt_8891 # Full causal chain explanation of an event
|
|
242
|
+
actshield forensic trace trc_9902 # Trace causal hops across agents
|
|
243
|
+
|
|
244
|
+
# CI/CD Quality Gate & Embedded Control Plane
|
|
245
|
+
actshield gate evaluate --min-score 85.0 --json # Automated deployment gate
|
|
246
|
+
actshield serve --port 8000 # Embedded Control Plane Dashboard + API
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 7. Embedded Control Plane Dashboard
|
|
252
|
+
|
|
253
|
+
ActShield ships with a pre-compiled, standalone Next.js dashboard embedded directly inside the wheel package:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
actshield serve
|
|
257
|
+
# Dashboard UI → http://127.0.0.1:8000/
|
|
258
|
+
# Swagger Docs → http://127.0.0.1:8000/docs
|
|
259
|
+
# REST API → http://127.0.0.1:8000/api/v1/
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## 8. License
|
|
265
|
+
|
|
266
|
+
Apache-2.0. See [LICENSE](LICENSE) for details.
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# ActShield
|
|
2
|
+
|
|
3
|
+
**The Deterministic AI Security Control Plane & Zero-Trust Reference Monitor for Autonomous and Multi-Agent Systems**
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/actshield/)
|
|
6
|
+
[](https://pypi.org/project/actshield/)
|
|
7
|
+
[](https://github.com/agentguard/agentguard/blob/main/LICENSE)
|
|
8
|
+
[](https://github.com/agentguard/agentguard)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Executive Summary
|
|
13
|
+
|
|
14
|
+
**ActShield** is an open-source, enterprise-grade **AI Security Control Plane and Zero-Trust Reference Monitor** designed specifically for autonomous and multi-agent AI ecosystems (LangChain, CrewAI, AutoGen, LlamaIndex, and custom agent runtimes).
|
|
15
|
+
|
|
16
|
+
As AI agents evolve from passive conversational bots into autonomous software actors capable of reading arbitrary documents, querying production databases, browsing the open web, invoking APIs, and delegating sub-tasks, standard application security controls (firewalls, WAFs, and static IAM) become insufficient.
|
|
17
|
+
|
|
18
|
+
ActShield bridges this fundamental security gap by establishing an active runtime control boundary around agents, ensuring that:
|
|
19
|
+
- **Every action is authenticated** against the agent's explicit, declared capabilities.
|
|
20
|
+
- **Privileges strictly diminish** across delegation trees (monotonicity).
|
|
21
|
+
- **Context tainted by untrusted sources** cannot flow into sensitive execution sinks.
|
|
22
|
+
- **Decisions are deterministic**: Advisory AI reasoners provide risk scores, but **deterministic policy code** renders the final authorization.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. The Core Invariant
|
|
27
|
+
|
|
28
|
+
$$\mathbf{LLMs\ Reason;\ Deterministic\ Policies\ Enforce.}$$
|
|
29
|
+
|
|
30
|
+
ActShield enforces a strict architectural division:
|
|
31
|
+
|
|
32
|
+
- **The Advisory Intelligence Layer (AI Secura / Pluggable LLMs)**: Evaluates semantic intent, calculates APIRIS risk metrics, and detects behavioral drift across OpenAI, Gemini, Anthropic, Ollama, Hugging Face, and custom models.
|
|
33
|
+
- **The Deterministic Policy Layer**: Checks capability tokens, verifies context taint markers, assesses delegation boundaries, and enforces binary execution decisions (`ALLOW`, `MONITOR`, `HITL`, `QUARANTINE`, `BLOCK`, `REVOKE`).
|
|
34
|
+
|
|
35
|
+
> **Fail-Safe Guarantee**: If an AI provider encounters a timeout, network failure, or malformed response, ActShield deterministically falls back to **FAIL_CLOSED** (or triggers Human-in-the-Loop review). An AI failure never defaults to an open execution grant.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 3. The 4 MANTA Foundational Principles
|
|
40
|
+
|
|
41
|
+
| Principle | Description |
|
|
42
|
+
|---|---|
|
|
43
|
+
| **1. Monotonic Authority** | $\text{Authority}(\text{Child}) \subseteq \text{Authority}(\text{Parent}) \subseteq \text{DeclaredAuthority}$. Privileges strictly diminish down delegation trees. |
|
|
44
|
+
| **2. Attributable Context Taint** | Untrusted context is tagged `TAINTED`. Tainted contexts cannot trigger sensitive database sinks, shells, or credential access without sanitization. |
|
|
45
|
+
| **3. Non-Bypassable Interception** | Reference monitor intercepts all tool invocations before execution. |
|
|
46
|
+
| **4. Transparent Forensic Causality** | Immutable, correlated traces recording who, what, when, why across 5 stages: `INTENDED` → `REQUESTED` → `ALLOWED` → `ATTEMPTED` → `EXECUTED`. |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 4. Architecture Overview
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Autonomous AI Agents
|
|
54
|
+
(LangChain, CrewAI, AutoGen, LlamaIndex, Custom)
|
|
55
|
+
│
|
|
56
|
+
▼
|
|
57
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
58
|
+
│ ActShield Core SDK │
|
|
59
|
+
│ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────────┐ │
|
|
60
|
+
│ │ Agent Registry │ │ Delegation Monotonic │ │ Context Taint │ │
|
|
61
|
+
│ │ (Cryptographic ID) │ │ Authority Manager │ │ Provenance │ │
|
|
62
|
+
│ └───────────────────────┘ └──────────────────────┘ └──────────────────┘ │
|
|
63
|
+
│ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────────┐ │
|
|
64
|
+
│ │ MCP Security Gateway │ │ HTTP Security Proxy │ │ Tool Interceptor │ │
|
|
65
|
+
│ └───────────────────────┘ └──────────────────────┘ └──────────────────┘ │
|
|
66
|
+
└─────────────────────────────────────┬────────────────────────────────────┘
|
|
67
|
+
│
|
|
68
|
+
▼
|
|
69
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
70
|
+
│ Security Intelligence Layer │
|
|
71
|
+
│ ┌────────────────────────────────────────────────────────────────────┐ │
|
|
72
|
+
│ │ Pluggable AI Secura Reasoners (OpenAI / Gemini / Anthropic / Ollama)│ │
|
|
73
|
+
│ └────────────────────────────────────────────────────────────────────┘ │
|
|
74
|
+
│ ┌────────────────────────────────────────────────────────────────────┐ │
|
|
75
|
+
│ │ APIRIS (API Risk Intelligence Engine) + Baseline Drift Tracker │ │
|
|
76
|
+
│ └────────────────────────────────────────────────────────────────────┘ │
|
|
77
|
+
└─────────────────────────────────────┬────────────────────────────────────┘
|
|
78
|
+
│
|
|
79
|
+
▼
|
|
80
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
81
|
+
│ Deterministic Policy Evaluator │
|
|
82
|
+
│ │
|
|
83
|
+
│ ALLOW │ MONITOR │ HITL │ QUARANTINE │ BLOCK │ REVOKE │
|
|
84
|
+
└─────────────────────────────────────┬────────────────────────────────────┘
|
|
85
|
+
│
|
|
86
|
+
▼
|
|
87
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
88
|
+
│ Evidence & Operational Plane │
|
|
89
|
+
│ ┌───────────────────┐ ┌──────────────────┐ ┌───────────────────────┐ │
|
|
90
|
+
│ │ Causal Forensics │ │ Incident Engine │ │ Continuous Posture │ │
|
|
91
|
+
│ │ & Trace Replay │ │ (7-Stage Cycle) │ │ Scorecard (6 Dims) │ │
|
|
92
|
+
│ └───────────────────┘ └──────────────────┘ └───────────────────────┘ │
|
|
93
|
+
│ ┌───────────────────┐ ┌──────────────────┐ ┌───────────────────────┐ │
|
|
94
|
+
│ │ Threat Modeling │ │ CI/CD Quality │ │ Embedded Next.js │ │
|
|
95
|
+
│ │ (STRIDE + AI) │ │ Security Gates │ │ Control Plane UI │ │
|
|
96
|
+
│ └───────────────────┘ └──────────────────┘ └───────────────────────┘ │
|
|
97
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 5. Installation
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Core package
|
|
106
|
+
pip install actshield
|
|
107
|
+
|
|
108
|
+
# With optional AI intelligence provider support
|
|
109
|
+
pip install actshield[openai]
|
|
110
|
+
pip install actshield[gemini]
|
|
111
|
+
pip install actshield[anthropic]
|
|
112
|
+
pip install actshield[ollama]
|
|
113
|
+
|
|
114
|
+
# Full enterprise suite (CLI + FastAPI Server + All Providers)
|
|
115
|
+
pip install actshield[all]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 6. Quick Start
|
|
121
|
+
|
|
122
|
+
### Python SDK
|
|
123
|
+
|
|
124
|
+
```python
|
|
125
|
+
import asyncio
|
|
126
|
+
from actshield import ActShield, SourceType, TrustLevel
|
|
127
|
+
|
|
128
|
+
# 1. Initialize Control Plane in strict zero-trust mode
|
|
129
|
+
guard = ActShield(mode="strict")
|
|
130
|
+
guard.start()
|
|
131
|
+
|
|
132
|
+
# 2. Register Root Orchestrator
|
|
133
|
+
orchestrator = guard.register_agent(
|
|
134
|
+
name="orchestrator",
|
|
135
|
+
capabilities={"delegate", "read_docs", "generate_summary"},
|
|
136
|
+
trust_level="HIGH"
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
# 3. Protect a Sensitive Execution Sink
|
|
140
|
+
@guard.protect(
|
|
141
|
+
tool="customer_db.query",
|
|
142
|
+
sensitivity="critical",
|
|
143
|
+
required_capability="database_read"
|
|
144
|
+
)
|
|
145
|
+
async def execute_customer_query(sql: str):
|
|
146
|
+
"""Executes database queries — blocked if caller lacks capability or context is TAINTED."""
|
|
147
|
+
return {"status": "SUCCESS", "records": 42}
|
|
148
|
+
|
|
149
|
+
# 4. Delegate Authority (Monotonically constrained)
|
|
150
|
+
researcher = orchestrator.delegate(
|
|
151
|
+
to_agent="researcher-001",
|
|
152
|
+
capabilities={"read_docs"}, # Valid subset of orchestrator capabilities
|
|
153
|
+
task_id="tsk_quarterly_report"
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
# 5. Ingest External Untrusted Context (Tainted)
|
|
157
|
+
untrusted_input = guard.create_context(
|
|
158
|
+
source_type=SourceType.UNTRUSTED_EXTERNAL,
|
|
159
|
+
trust_level=TrustLevel.UNTRUSTED,
|
|
160
|
+
content="Download report from untrusted web URL..."
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
# 6. Policy Enforcement:
|
|
164
|
+
# Calling execute_customer_query under researcher with tainted context:
|
|
165
|
+
# -> BLOCKED (Missing 'database_read' capability + context is TAINTED)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Enterprise CLI
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Diagnostic & Posture
|
|
172
|
+
actshield doctor # Comprehensive subsystem diagnostic
|
|
173
|
+
actshield posture --json # Output 6-dimension security scorecard
|
|
174
|
+
actshield status --json # Real-time runtime telemetry
|
|
175
|
+
|
|
176
|
+
# Multi-Agent Governance
|
|
177
|
+
actshield agents --graph # Render multi-agent topology & delegation graph
|
|
178
|
+
actshield tasks --json # Active agent tasks and intent bindings
|
|
179
|
+
actshield policies --json # Deterministic policy boundaries
|
|
180
|
+
|
|
181
|
+
# Threat Modeling & Forensics
|
|
182
|
+
actshield threat analyze -o threat-report.md # Automated STRIDE + AI threat analysis
|
|
183
|
+
actshield forensic why evt_8891 # Full causal chain explanation of an event
|
|
184
|
+
actshield forensic trace trc_9902 # Trace causal hops across agents
|
|
185
|
+
|
|
186
|
+
# CI/CD Quality Gate & Embedded Control Plane
|
|
187
|
+
actshield gate evaluate --min-score 85.0 --json # Automated deployment gate
|
|
188
|
+
actshield serve --port 8000 # Embedded Control Plane Dashboard + API
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 7. Embedded Control Plane Dashboard
|
|
194
|
+
|
|
195
|
+
ActShield ships with a pre-compiled, standalone Next.js dashboard embedded directly inside the wheel package:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
actshield serve
|
|
199
|
+
# Dashboard UI → http://127.0.0.1:8000/
|
|
200
|
+
# Swagger Docs → http://127.0.0.1:8000/docs
|
|
201
|
+
# REST API → http://127.0.0.1:8000/api/v1/
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 8. License
|
|
207
|
+
|
|
208
|
+
Apache-2.0. See [LICENSE](LICENSE) for details.
|
|
@@ -135,7 +135,7 @@ from actshield.tracing.correlation import (
|
|
|
135
135
|
from actshield.tracing.events import EventType, SecurityEvent
|
|
136
136
|
from actshield.tracing.tracer import CausalEdge, CausalGraph, CausalNode, TraceManager
|
|
137
137
|
|
|
138
|
-
__version__ = "0.9.
|
|
138
|
+
__version__ = "0.9.1"
|
|
139
139
|
|
|
140
140
|
# Phase 6.5 — Forensic Intelligence + Product API
|
|
141
141
|
from actshield.forensics.service import ForensicService
|
|
@@ -95,10 +95,11 @@ def cmd_status(
|
|
|
95
95
|
) -> None:
|
|
96
96
|
"""Display overall system security status and posture rating."""
|
|
97
97
|
if as_json:
|
|
98
|
+
from actshield import __version__
|
|
98
99
|
payload = {
|
|
99
100
|
"runtime": "ONLINE",
|
|
100
101
|
"mode": "STRICT",
|
|
101
|
-
"version":
|
|
102
|
+
"version": __version__,
|
|
102
103
|
"posture": {"score": 100.0, "grade": "A", "status": "HEALTHY"},
|
|
103
104
|
"identity": {"active_agents": 3, "protected_tools": 37, "active_tasks": 47},
|
|
104
105
|
"enforcement": {"allow": 421, "hitl": 4, "block": 17, "quarantine": 1, "bypasses": 0},
|
|
@@ -762,11 +763,12 @@ def cmd_report(
|
|
|
762
763
|
) -> None:
|
|
763
764
|
"""Generate comprehensive AgentGuard security audit and posture report."""
|
|
764
765
|
from actshield.client import ActShield
|
|
766
|
+
from actshield import __version__
|
|
765
767
|
guard = ActShield()
|
|
766
768
|
posture = guard.get_security_posture()
|
|
767
|
-
content = f"""#
|
|
769
|
+
content = f"""# ActShield Enterprise Security Report
|
|
768
770
|
Generated: {datetime.now(timezone.utc).isoformat()}
|
|
769
|
-
System Version:
|
|
771
|
+
System Version: {__version__}
|
|
770
772
|
Status: ACTIVE / STRICT
|
|
771
773
|
|
|
772
774
|
## 1. Posture Scorecard
|