vindicara 0.1.0__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.
- vindicara-0.1.0/.gitignore +38 -0
- vindicara-0.1.0/PKG-INFO +317 -0
- vindicara-0.1.0/README.md +275 -0
- vindicara-0.1.0/cdk.json +10 -0
- vindicara-0.1.0/pyproject.toml +111 -0
- vindicara-0.1.0/scripts/lint.sh +9 -0
- vindicara-0.1.0/scripts/test.sh +3 -0
- vindicara-0.1.0/src/vindicara/__init__.py +22 -0
- vindicara-0.1.0/src/vindicara/api/__init__.py +0 -0
- vindicara-0.1.0/src/vindicara/api/app.py +35 -0
- vindicara-0.1.0/src/vindicara/api/deps.py +23 -0
- vindicara-0.1.0/src/vindicara/api/middleware/__init__.py +0 -0
- vindicara-0.1.0/src/vindicara/api/middleware/auth.py +27 -0
- vindicara-0.1.0/src/vindicara/api/middleware/request_id.py +18 -0
- vindicara-0.1.0/src/vindicara/api/routes/__init__.py +0 -0
- vindicara-0.1.0/src/vindicara/api/routes/guard.py +55 -0
- vindicara-0.1.0/src/vindicara/api/routes/health.py +15 -0
- vindicara-0.1.0/src/vindicara/api/routes/policies.py +16 -0
- vindicara-0.1.0/src/vindicara/api/routes/scans.py +36 -0
- vindicara-0.1.0/src/vindicara/audit/__init__.py +6 -0
- vindicara-0.1.0/src/vindicara/audit/logger.py +44 -0
- vindicara-0.1.0/src/vindicara/audit/storage.py +30 -0
- vindicara-0.1.0/src/vindicara/config/__init__.py +5 -0
- vindicara-0.1.0/src/vindicara/config/constants.py +36 -0
- vindicara-0.1.0/src/vindicara/config/settings.py +27 -0
- vindicara-0.1.0/src/vindicara/engine/__init__.py +6 -0
- vindicara-0.1.0/src/vindicara/engine/evaluator.py +51 -0
- vindicara-0.1.0/src/vindicara/engine/policy.py +146 -0
- vindicara-0.1.0/src/vindicara/engine/rules/__init__.py +1 -0
- vindicara-0.1.0/src/vindicara/engine/rules/base.py +15 -0
- vindicara-0.1.0/src/vindicara/engine/rules/composite.py +76 -0
- vindicara-0.1.0/src/vindicara/engine/rules/deterministic.py +85 -0
- vindicara-0.1.0/src/vindicara/infra/__init__.py +1 -0
- vindicara-0.1.0/src/vindicara/infra/app.py +30 -0
- vindicara-0.1.0/src/vindicara/infra/stacks/__init__.py +1 -0
- vindicara-0.1.0/src/vindicara/infra/stacks/api_stack.py +73 -0
- vindicara-0.1.0/src/vindicara/infra/stacks/data_stack.py +67 -0
- vindicara-0.1.0/src/vindicara/infra/stacks/events_stack.py +24 -0
- vindicara-0.1.0/src/vindicara/lambda_handler.py +8 -0
- vindicara-0.1.0/src/vindicara/mcp/__init__.py +26 -0
- vindicara-0.1.0/src/vindicara/mcp/analyzer.py +241 -0
- vindicara-0.1.0/src/vindicara/mcp/findings.py +67 -0
- vindicara-0.1.0/src/vindicara/mcp/prober.py +229 -0
- vindicara-0.1.0/src/vindicara/mcp/risk.py +41 -0
- vindicara-0.1.0/src/vindicara/mcp/scanner.py +143 -0
- vindicara-0.1.0/src/vindicara/mcp/transport.py +150 -0
- vindicara-0.1.0/src/vindicara/py.typed +0 -0
- vindicara-0.1.0/src/vindicara/sdk/__init__.py +25 -0
- vindicara-0.1.0/src/vindicara/sdk/client.py +146 -0
- vindicara-0.1.0/src/vindicara/sdk/exceptions.py +37 -0
- vindicara-0.1.0/src/vindicara/sdk/types.py +68 -0
- vindicara-0.1.0/tests/__init__.py +0 -0
- vindicara-0.1.0/tests/conftest.py +1 -0
- vindicara-0.1.0/tests/integration/__init__.py +0 -0
- vindicara-0.1.0/tests/integration/api/__init__.py +0 -0
- vindicara-0.1.0/tests/integration/api/test_guard_endpoint.py +82 -0
- vindicara-0.1.0/tests/integration/api/test_health.py +27 -0
- vindicara-0.1.0/tests/integration/api/test_policies_endpoint.py +25 -0
- vindicara-0.1.0/tests/integration/mcp/__init__.py +0 -0
- vindicara-0.1.0/tests/integration/mcp/test_scan_endpoint.py +77 -0
- vindicara-0.1.0/tests/unit/__init__.py +0 -0
- vindicara-0.1.0/tests/unit/engine/__init__.py +0 -0
- vindicara-0.1.0/tests/unit/engine/test_composite.py +88 -0
- vindicara-0.1.0/tests/unit/engine/test_deterministic.py +116 -0
- vindicara-0.1.0/tests/unit/engine/test_evaluator.py +51 -0
- vindicara-0.1.0/tests/unit/engine/test_policy.py +55 -0
- vindicara-0.1.0/tests/unit/mcp/__init__.py +0 -0
- vindicara-0.1.0/tests/unit/mcp/test_analyzer.py +136 -0
- vindicara-0.1.0/tests/unit/mcp/test_findings.py +80 -0
- vindicara-0.1.0/tests/unit/mcp/test_prober.py +167 -0
- vindicara-0.1.0/tests/unit/mcp/test_risk.py +91 -0
- vindicara-0.1.0/tests/unit/mcp/test_scanner.py +72 -0
- vindicara-0.1.0/tests/unit/sdk/__init__.py +0 -0
- vindicara-0.1.0/tests/unit/sdk/test_client.py +78 -0
- vindicara-0.1.0/tests/unit/sdk/test_types.py +64 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.egg-info/
|
|
6
|
+
*.egg
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
*.whl
|
|
10
|
+
|
|
11
|
+
# Virtual environments
|
|
12
|
+
.venv/
|
|
13
|
+
venv/
|
|
14
|
+
ENV/
|
|
15
|
+
|
|
16
|
+
# Testing / Coverage
|
|
17
|
+
.pytest_cache/
|
|
18
|
+
.coverage
|
|
19
|
+
htmlcov/
|
|
20
|
+
.mypy_cache/
|
|
21
|
+
|
|
22
|
+
# CDK
|
|
23
|
+
cdk.out/
|
|
24
|
+
cdk.context.json
|
|
25
|
+
|
|
26
|
+
# IDE
|
|
27
|
+
.vscode/
|
|
28
|
+
.idea/
|
|
29
|
+
*.swp
|
|
30
|
+
*.swo
|
|
31
|
+
*~
|
|
32
|
+
.DS_Store
|
|
33
|
+
|
|
34
|
+
# Environment variables
|
|
35
|
+
.env
|
|
36
|
+
.env.*
|
|
37
|
+
lambda_package/
|
|
38
|
+
cdk.out/
|
vindicara-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vindicara
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Runtime security for autonomous AI. The control plane for AI agents in production.
|
|
5
|
+
Project-URL: Homepage, https://vindicara.io
|
|
6
|
+
Project-URL: Repository, https://github.com/get-sltr/vindicara-ai
|
|
7
|
+
Project-URL: Documentation, https://docs.vindicara.io
|
|
8
|
+
Author-email: Vindicara <eng@vindicara.io>
|
|
9
|
+
License-Expression: Apache-2.0
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Topic :: Security
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Classifier: Typing :: Typed
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Requires-Dist: httpx<1.0,>=0.27.0
|
|
21
|
+
Requires-Dist: pydantic-settings<3.0,>=2.3.0
|
|
22
|
+
Requires-Dist: pydantic<3.0,>=2.7.0
|
|
23
|
+
Requires-Dist: structlog<26.0,>=24.1.0
|
|
24
|
+
Provides-Extra: api
|
|
25
|
+
Requires-Dist: boto3-stubs[dynamodb,events,s3]<2.0,>=1.35.0; extra == 'api'
|
|
26
|
+
Requires-Dist: boto3<2.0,>=1.35.0; extra == 'api'
|
|
27
|
+
Requires-Dist: fastapi<1.0,>=0.115.0; extra == 'api'
|
|
28
|
+
Requires-Dist: mangum<1.0,>=0.19.0; extra == 'api'
|
|
29
|
+
Requires-Dist: uvicorn<1.0,>=0.30.0; extra == 'api'
|
|
30
|
+
Provides-Extra: cdk
|
|
31
|
+
Requires-Dist: aws-cdk-lib<3.0,>=2.150.0; extra == 'cdk'
|
|
32
|
+
Requires-Dist: constructs<11.0,>=10.0.0; extra == 'cdk'
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: hypothesis<7.0,>=6.100.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: mypy<2.0,>=1.11.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: pip-audit<3.0,>=2.7.0; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest-asyncio<1.0,>=0.24.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: pytest-cov<6.0,>=5.0.0; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest<9.0,>=8.3.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: ruff<1.0,>=0.6.0; extra == 'dev'
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<img src="https://vindicara.io/hero-mesh.png" alt="Vindicara" width="100%">
|
|
45
|
+
</p>
|
|
46
|
+
|
|
47
|
+
<h1 align="center">Vindicara</h1>
|
|
48
|
+
|
|
49
|
+
<p align="center">
|
|
50
|
+
<strong>Runtime security for autonomous AI.</strong><br>
|
|
51
|
+
The control plane for AI agents in production.
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
<p align="center">
|
|
55
|
+
<a href="https://vindicara.io">Website</a> ·
|
|
56
|
+
<a href="https://d1xzz26fz4.execute-api.us-east-1.amazonaws.com/docs">API Docs</a> ·
|
|
57
|
+
<a href="https://vindicara.io/#live-demo">Live Demo</a> ·
|
|
58
|
+
<a href="mailto:hello@vindicara.io">Contact</a>
|
|
59
|
+
</p>
|
|
60
|
+
|
|
61
|
+
<p align="center">
|
|
62
|
+
<img src="https://img.shields.io/badge/python-3.11+-blue?style=flat-square" alt="Python 3.11+">
|
|
63
|
+
<img src="https://img.shields.io/badge/license-Apache%202.0-green?style=flat-square" alt="License">
|
|
64
|
+
<img src="https://img.shields.io/badge/status-developer%20preview-orange?style=flat-square" alt="Status">
|
|
65
|
+
<img src="https://img.shields.io/badge/latency-<2ms%20deterministic-brightgreen?style=flat-square" alt="Latency">
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## The Problem
|
|
71
|
+
|
|
72
|
+
AI agents are no longer chatbots answering questions. They are autonomous systems executing multi-step workflows, accessing enterprise infrastructure via MCP (Model Context Protocol), modifying databases, triggering transactions, and making decisions at machine speed.
|
|
73
|
+
|
|
74
|
+
The security infrastructure has not kept up:
|
|
75
|
+
|
|
76
|
+
- **92% of MCP servers lack proper OAuth.** Nearly half of those that do have material implementation flaws (RSA Conference 2026).
|
|
77
|
+
- **40% of enterprise applications** will embed task-specific AI agents by end of 2026 (Gartner).
|
|
78
|
+
- **EU AI Act enforcement begins August 2, 2026.** High-risk AI systems require runtime monitoring, audit trails, and incident reporting. Non-compliance: up to 7% of global annual revenue.
|
|
79
|
+
- **MITRE ATLAS and NIST frameworks** do not yet cover MCP-specific attack vectors. Roughly 50% of the agentic architectural stack has zero standardized defensive guidance.
|
|
80
|
+
- **CalypsoAI was acquired by F5. Lakera was acquired by Check Point.** The independent, developer-first tier of the market is empty.
|
|
81
|
+
|
|
82
|
+
Vindicara fills that gap.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## What Vindicara Does
|
|
87
|
+
|
|
88
|
+
Vindicara sits between AI agents/models and the systems they interact with. It intercepts every input and output in real time to enforce safety policies, prevent data leakage, detect behavioral drift, audit agent actions, and generate compliance evidence.
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
import vindicara
|
|
92
|
+
|
|
93
|
+
vc = vindicara.Client(api_key="vnd_...")
|
|
94
|
+
|
|
95
|
+
# Guard every agent interaction
|
|
96
|
+
result = await vc.guard(
|
|
97
|
+
input=user_prompt,
|
|
98
|
+
output=model_response,
|
|
99
|
+
policy="content-safety"
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
if result.is_blocked:
|
|
103
|
+
# Policy violation detected
|
|
104
|
+
print(result.triggered_rules)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Two lines of code. Sub-2ms evaluation for deterministic rules. No infrastructure rewrites. No model changes.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Five Layers of Runtime Defense
|
|
112
|
+
|
|
113
|
+
### 1. Input & Output Guard
|
|
114
|
+
Intercept every prompt and response. Block prompt injection, PII leakage, toxic content, and policy violations before they reach users or downstream systems.
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
# Deterministic rules: <2ms
|
|
118
|
+
# ML-based detection: <50ms
|
|
119
|
+
result = vc.guard(input=prompt, output=response, policy="pii-filter")
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 2. MCP Security Scanner
|
|
123
|
+
Audit MCP server configurations for authentication weaknesses, overprivileged tool access, and known attack vectors. Runtime traffic inspection catches privilege escalation and abnormal chaining patterns.
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
report = vc.mcp.scan(server_url="https://mcp.example.com")
|
|
127
|
+
print(report.risk_score) # 0.73 (HIGH)
|
|
128
|
+
print(report.findings) # ["No OAuth configured", ...]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 3. Agent Identity & IAM
|
|
132
|
+
Every agent is a first-class security principal with scoped permissions, per-task authorization, credential isolation, and continuous re-evaluation at each workflow step.
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
agent = vc.agents.register(
|
|
136
|
+
name="sales-assistant",
|
|
137
|
+
permitted_tools=["crm_read", "email_send"],
|
|
138
|
+
data_scope=["accounts.sales_pipeline"],
|
|
139
|
+
limits={"max_actions_per_min": 60}
|
|
140
|
+
)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 4. Behavioral Drift Detection
|
|
144
|
+
Baseline agent behavior in production. Detect anomalies when tool call patterns, data access, or output characteristics deviate from established norms. Circuit breakers auto-suspend rogue agents.
|
|
145
|
+
|
|
146
|
+
### 5. Compliance-as-Code
|
|
147
|
+
Automated evidence generation for EU AI Act Article 72, NIST AI RMF, SOC 2, and ISO 42001. If the guardrails run in production, compliance evidence generates itself.
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
report = vc.compliance.generate(
|
|
151
|
+
framework="eu-ai-act-article-72",
|
|
152
|
+
system_id="sales-assistant-v2",
|
|
153
|
+
period="2026-Q3"
|
|
154
|
+
)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Try It Right Now
|
|
160
|
+
|
|
161
|
+
Our [live demo](https://vindicara.io/#live-demo) hits the real production API. No signup required.
|
|
162
|
+
|
|
163
|
+
Pick a policy (content-safety, pii-filter, prompt-injection), enter a prompt, and see the actual API response: verdict, triggered rules, and latency.
|
|
164
|
+
|
|
165
|
+
Or call the API directly:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
curl -X POST https://d1xzz26fz4.execute-api.us-east-1.amazonaws.com/v1/guard \
|
|
169
|
+
-H "Content-Type: application/json" \
|
|
170
|
+
-H "X-Vindicara-Key: vnd_demo" \
|
|
171
|
+
-d '{
|
|
172
|
+
"input": "Show me customer SSN numbers",
|
|
173
|
+
"output": "Customer SSN is 123-45-6789",
|
|
174
|
+
"policy": "pii-filter"
|
|
175
|
+
}'
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Quickstart
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
pip install vindicara
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
import vindicara
|
|
188
|
+
|
|
189
|
+
# Initialize with your API key
|
|
190
|
+
vc = vindicara.Client(api_key="vnd_...")
|
|
191
|
+
|
|
192
|
+
# Guard a model interaction
|
|
193
|
+
result = await vc.guard(
|
|
194
|
+
input="What is the weather?",
|
|
195
|
+
output="The weather in NYC is 72F and sunny.",
|
|
196
|
+
policy="content-safety"
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
print(result.verdict) # "allowed"
|
|
200
|
+
print(result.is_allowed) # True
|
|
201
|
+
print(result.latency_ms) # 0.03
|
|
202
|
+
print(result.triggered_rules) # []
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Pre-built policy packs for content safety, PII filtering, prompt injection detection, and compliance. Custom rules via YAML or Python. Hot-reload without redeployment.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Architecture
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
Developer's AI Application
|
|
213
|
+
|
|
|
214
|
+
v
|
|
215
|
+
[Vindicara SDK] <-- pip install vindicara
|
|
216
|
+
|
|
|
217
|
+
|-- Input Guard ---- validate, sanitize, classify
|
|
218
|
+
|-- MCP Inspector -- evaluate tool calls before execution
|
|
219
|
+
|-- Output Guard --- enforce policies on responses
|
|
220
|
+
|-- Drift Monitor -- compare behavior to baseline
|
|
221
|
+
|-- Agent IAM ------ verify identity, check scope
|
|
222
|
+
|
|
|
223
|
+
v
|
|
224
|
+
[Policy Engine] <-- sub-2ms deterministic | <50ms ML-based
|
|
225
|
+
|
|
|
226
|
+
v
|
|
227
|
+
[Audit Logger] --> immutable logs, compliance artifacts
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Why Vindicara Exists
|
|
233
|
+
|
|
234
|
+
| Company | Status | Gap |
|
|
235
|
+
|---------|--------|-----|
|
|
236
|
+
| CalypsoAI | Acquired by F5 | Government-only, no self-serve |
|
|
237
|
+
| Lakera | Acquired by Check Point | Enterprise-only, expensive |
|
|
238
|
+
| Guardrails AI | $7.5M seed, 11 employees | Open source but complex setup |
|
|
239
|
+
| NVIDIA NeMo | Open source toolkit | No managed service, no compliance |
|
|
240
|
+
| Cisco AI Defense | RSA 2026 launch | Enterprise networking stack |
|
|
241
|
+
|
|
242
|
+
Vindicara is the only **independent, developer-first** AI runtime security platform with self-serve pricing that covers the full agentic lifecycle.
|
|
243
|
+
|
|
244
|
+
Not a feature inside someone else's enterprise stack. Not a gateway. Not an observability tool. The policy enforcement engine developers embed in their code and have runtime protection in under 5 minutes.
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Pricing
|
|
249
|
+
|
|
250
|
+
| Tier | Price | What You Get |
|
|
251
|
+
|------|-------|-------------|
|
|
252
|
+
| **Open Source** | Free forever | Core policy engine, local evaluation, community support |
|
|
253
|
+
| **Developer** | $49/mo | Managed dashboard, MCP scanner (5 servers), cloud logging |
|
|
254
|
+
| **Team** | $149/mo | Agent IAM, behavioral baselines, 25 MCP servers, Slack support |
|
|
255
|
+
| **Enterprise** | Custom | Compliance engine, on-prem/VPC, SSO/SAML, SLA, BAA |
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Regulatory Tailwinds
|
|
260
|
+
|
|
261
|
+
**EU AI Act (August 2, 2026):** High-risk AI systems must implement continuous monitoring, maintain audit trails, report incidents within strict timeframes, and generate conformity documentation. Vindicara automates all of this from runtime data.
|
|
262
|
+
|
|
263
|
+
**NIST AI RMF:** Maps Vindicara's runtime telemetry to framework controls. Evidence packages generated automatically.
|
|
264
|
+
|
|
265
|
+
**SOC 2 / ISO 42001:** Audit trail exports, access control evidence, change management logs formatted for auditor consumption.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Stack
|
|
270
|
+
|
|
271
|
+
- **Language:** Python 3.11+
|
|
272
|
+
- **API:** FastAPI, Pydantic v2, async-native
|
|
273
|
+
- **Infrastructure:** AWS Lambda (Mangum), API Gateway, DynamoDB, S3, EventBridge
|
|
274
|
+
- **Frontend:** SvelteKit
|
|
275
|
+
- **SDK:** `pip install vindicara` (sync + async interfaces, zero heavy dependencies)
|
|
276
|
+
- **Tooling:** ruff, mypy --strict, pytest + hypothesis
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Roadmap
|
|
281
|
+
|
|
282
|
+
- [x] Core policy engine (deterministic rules)
|
|
283
|
+
- [x] SDK client with sync/async interfaces
|
|
284
|
+
- [x] FastAPI backend on AWS Lambda
|
|
285
|
+
- [x] Live production API
|
|
286
|
+
- [x] Marketing site with interactive demo
|
|
287
|
+
- [ ] PyPI package distribution
|
|
288
|
+
- [ ] MCP Security Scanner (standalone tool)
|
|
289
|
+
- [ ] Agent Identity & IAM module
|
|
290
|
+
- [ ] Behavioral drift detection
|
|
291
|
+
- [ ] Compliance-as-Code engine (EU AI Act, NIST, SOC 2)
|
|
292
|
+
- [ ] Managed dashboard
|
|
293
|
+
- [ ] SOC 2 Type I certification
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## About
|
|
298
|
+
|
|
299
|
+
Vindicara is built by [Kevin Minn](https://linkedin.com/in/kevinminn), founder of [SLTR Digital](https://sltrdigital.com). Solo technical founder. Cybersecurity student. Building the security infrastructure the agentic AI era demands.
|
|
300
|
+
|
|
301
|
+
- **Website:** [vindicara.io](https://vindicara.io)
|
|
302
|
+
- **API Docs:** [Live OpenAPI](https://d1xzz26fz4.execute-api.us-east-1.amazonaws.com/docs)
|
|
303
|
+
- **Email:** [hello@vindicara.io](mailto:hello@vindicara.io)
|
|
304
|
+
- **Twitter/X:** [@vindicara](https://x.com/vindicara)
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## License
|
|
309
|
+
|
|
310
|
+
Apache 2.0. See [LICENSE](LICENSE) for details.
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
<p align="center">
|
|
315
|
+
<strong>Your agents are autonomous. Your security should be too.</strong><br><br>
|
|
316
|
+
<code>pip install vindicara</code>
|
|
317
|
+
</p>
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://vindicara.io/hero-mesh.png" alt="Vindicara" width="100%">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Vindicara</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Runtime security for autonomous AI.</strong><br>
|
|
9
|
+
The control plane for AI agents in production.
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://vindicara.io">Website</a> ·
|
|
14
|
+
<a href="https://d1xzz26fz4.execute-api.us-east-1.amazonaws.com/docs">API Docs</a> ·
|
|
15
|
+
<a href="https://vindicara.io/#live-demo">Live Demo</a> ·
|
|
16
|
+
<a href="mailto:hello@vindicara.io">Contact</a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<img src="https://img.shields.io/badge/python-3.11+-blue?style=flat-square" alt="Python 3.11+">
|
|
21
|
+
<img src="https://img.shields.io/badge/license-Apache%202.0-green?style=flat-square" alt="License">
|
|
22
|
+
<img src="https://img.shields.io/badge/status-developer%20preview-orange?style=flat-square" alt="Status">
|
|
23
|
+
<img src="https://img.shields.io/badge/latency-<2ms%20deterministic-brightgreen?style=flat-square" alt="Latency">
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## The Problem
|
|
29
|
+
|
|
30
|
+
AI agents are no longer chatbots answering questions. They are autonomous systems executing multi-step workflows, accessing enterprise infrastructure via MCP (Model Context Protocol), modifying databases, triggering transactions, and making decisions at machine speed.
|
|
31
|
+
|
|
32
|
+
The security infrastructure has not kept up:
|
|
33
|
+
|
|
34
|
+
- **92% of MCP servers lack proper OAuth.** Nearly half of those that do have material implementation flaws (RSA Conference 2026).
|
|
35
|
+
- **40% of enterprise applications** will embed task-specific AI agents by end of 2026 (Gartner).
|
|
36
|
+
- **EU AI Act enforcement begins August 2, 2026.** High-risk AI systems require runtime monitoring, audit trails, and incident reporting. Non-compliance: up to 7% of global annual revenue.
|
|
37
|
+
- **MITRE ATLAS and NIST frameworks** do not yet cover MCP-specific attack vectors. Roughly 50% of the agentic architectural stack has zero standardized defensive guidance.
|
|
38
|
+
- **CalypsoAI was acquired by F5. Lakera was acquired by Check Point.** The independent, developer-first tier of the market is empty.
|
|
39
|
+
|
|
40
|
+
Vindicara fills that gap.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## What Vindicara Does
|
|
45
|
+
|
|
46
|
+
Vindicara sits between AI agents/models and the systems they interact with. It intercepts every input and output in real time to enforce safety policies, prevent data leakage, detect behavioral drift, audit agent actions, and generate compliance evidence.
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
import vindicara
|
|
50
|
+
|
|
51
|
+
vc = vindicara.Client(api_key="vnd_...")
|
|
52
|
+
|
|
53
|
+
# Guard every agent interaction
|
|
54
|
+
result = await vc.guard(
|
|
55
|
+
input=user_prompt,
|
|
56
|
+
output=model_response,
|
|
57
|
+
policy="content-safety"
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
if result.is_blocked:
|
|
61
|
+
# Policy violation detected
|
|
62
|
+
print(result.triggered_rules)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Two lines of code. Sub-2ms evaluation for deterministic rules. No infrastructure rewrites. No model changes.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Five Layers of Runtime Defense
|
|
70
|
+
|
|
71
|
+
### 1. Input & Output Guard
|
|
72
|
+
Intercept every prompt and response. Block prompt injection, PII leakage, toxic content, and policy violations before they reach users or downstream systems.
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
# Deterministic rules: <2ms
|
|
76
|
+
# ML-based detection: <50ms
|
|
77
|
+
result = vc.guard(input=prompt, output=response, policy="pii-filter")
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 2. MCP Security Scanner
|
|
81
|
+
Audit MCP server configurations for authentication weaknesses, overprivileged tool access, and known attack vectors. Runtime traffic inspection catches privilege escalation and abnormal chaining patterns.
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
report = vc.mcp.scan(server_url="https://mcp.example.com")
|
|
85
|
+
print(report.risk_score) # 0.73 (HIGH)
|
|
86
|
+
print(report.findings) # ["No OAuth configured", ...]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 3. Agent Identity & IAM
|
|
90
|
+
Every agent is a first-class security principal with scoped permissions, per-task authorization, credential isolation, and continuous re-evaluation at each workflow step.
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
agent = vc.agents.register(
|
|
94
|
+
name="sales-assistant",
|
|
95
|
+
permitted_tools=["crm_read", "email_send"],
|
|
96
|
+
data_scope=["accounts.sales_pipeline"],
|
|
97
|
+
limits={"max_actions_per_min": 60}
|
|
98
|
+
)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 4. Behavioral Drift Detection
|
|
102
|
+
Baseline agent behavior in production. Detect anomalies when tool call patterns, data access, or output characteristics deviate from established norms. Circuit breakers auto-suspend rogue agents.
|
|
103
|
+
|
|
104
|
+
### 5. Compliance-as-Code
|
|
105
|
+
Automated evidence generation for EU AI Act Article 72, NIST AI RMF, SOC 2, and ISO 42001. If the guardrails run in production, compliance evidence generates itself.
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
report = vc.compliance.generate(
|
|
109
|
+
framework="eu-ai-act-article-72",
|
|
110
|
+
system_id="sales-assistant-v2",
|
|
111
|
+
period="2026-Q3"
|
|
112
|
+
)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Try It Right Now
|
|
118
|
+
|
|
119
|
+
Our [live demo](https://vindicara.io/#live-demo) hits the real production API. No signup required.
|
|
120
|
+
|
|
121
|
+
Pick a policy (content-safety, pii-filter, prompt-injection), enter a prompt, and see the actual API response: verdict, triggered rules, and latency.
|
|
122
|
+
|
|
123
|
+
Or call the API directly:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
curl -X POST https://d1xzz26fz4.execute-api.us-east-1.amazonaws.com/v1/guard \
|
|
127
|
+
-H "Content-Type: application/json" \
|
|
128
|
+
-H "X-Vindicara-Key: vnd_demo" \
|
|
129
|
+
-d '{
|
|
130
|
+
"input": "Show me customer SSN numbers",
|
|
131
|
+
"output": "Customer SSN is 123-45-6789",
|
|
132
|
+
"policy": "pii-filter"
|
|
133
|
+
}'
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Quickstart
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
pip install vindicara
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
import vindicara
|
|
146
|
+
|
|
147
|
+
# Initialize with your API key
|
|
148
|
+
vc = vindicara.Client(api_key="vnd_...")
|
|
149
|
+
|
|
150
|
+
# Guard a model interaction
|
|
151
|
+
result = await vc.guard(
|
|
152
|
+
input="What is the weather?",
|
|
153
|
+
output="The weather in NYC is 72F and sunny.",
|
|
154
|
+
policy="content-safety"
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
print(result.verdict) # "allowed"
|
|
158
|
+
print(result.is_allowed) # True
|
|
159
|
+
print(result.latency_ms) # 0.03
|
|
160
|
+
print(result.triggered_rules) # []
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Pre-built policy packs for content safety, PII filtering, prompt injection detection, and compliance. Custom rules via YAML or Python. Hot-reload without redeployment.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Architecture
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Developer's AI Application
|
|
171
|
+
|
|
|
172
|
+
v
|
|
173
|
+
[Vindicara SDK] <-- pip install vindicara
|
|
174
|
+
|
|
|
175
|
+
|-- Input Guard ---- validate, sanitize, classify
|
|
176
|
+
|-- MCP Inspector -- evaluate tool calls before execution
|
|
177
|
+
|-- Output Guard --- enforce policies on responses
|
|
178
|
+
|-- Drift Monitor -- compare behavior to baseline
|
|
179
|
+
|-- Agent IAM ------ verify identity, check scope
|
|
180
|
+
|
|
|
181
|
+
v
|
|
182
|
+
[Policy Engine] <-- sub-2ms deterministic | <50ms ML-based
|
|
183
|
+
|
|
|
184
|
+
v
|
|
185
|
+
[Audit Logger] --> immutable logs, compliance artifacts
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Why Vindicara Exists
|
|
191
|
+
|
|
192
|
+
| Company | Status | Gap |
|
|
193
|
+
|---------|--------|-----|
|
|
194
|
+
| CalypsoAI | Acquired by F5 | Government-only, no self-serve |
|
|
195
|
+
| Lakera | Acquired by Check Point | Enterprise-only, expensive |
|
|
196
|
+
| Guardrails AI | $7.5M seed, 11 employees | Open source but complex setup |
|
|
197
|
+
| NVIDIA NeMo | Open source toolkit | No managed service, no compliance |
|
|
198
|
+
| Cisco AI Defense | RSA 2026 launch | Enterprise networking stack |
|
|
199
|
+
|
|
200
|
+
Vindicara is the only **independent, developer-first** AI runtime security platform with self-serve pricing that covers the full agentic lifecycle.
|
|
201
|
+
|
|
202
|
+
Not a feature inside someone else's enterprise stack. Not a gateway. Not an observability tool. The policy enforcement engine developers embed in their code and have runtime protection in under 5 minutes.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Pricing
|
|
207
|
+
|
|
208
|
+
| Tier | Price | What You Get |
|
|
209
|
+
|------|-------|-------------|
|
|
210
|
+
| **Open Source** | Free forever | Core policy engine, local evaluation, community support |
|
|
211
|
+
| **Developer** | $49/mo | Managed dashboard, MCP scanner (5 servers), cloud logging |
|
|
212
|
+
| **Team** | $149/mo | Agent IAM, behavioral baselines, 25 MCP servers, Slack support |
|
|
213
|
+
| **Enterprise** | Custom | Compliance engine, on-prem/VPC, SSO/SAML, SLA, BAA |
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Regulatory Tailwinds
|
|
218
|
+
|
|
219
|
+
**EU AI Act (August 2, 2026):** High-risk AI systems must implement continuous monitoring, maintain audit trails, report incidents within strict timeframes, and generate conformity documentation. Vindicara automates all of this from runtime data.
|
|
220
|
+
|
|
221
|
+
**NIST AI RMF:** Maps Vindicara's runtime telemetry to framework controls. Evidence packages generated automatically.
|
|
222
|
+
|
|
223
|
+
**SOC 2 / ISO 42001:** Audit trail exports, access control evidence, change management logs formatted for auditor consumption.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Stack
|
|
228
|
+
|
|
229
|
+
- **Language:** Python 3.11+
|
|
230
|
+
- **API:** FastAPI, Pydantic v2, async-native
|
|
231
|
+
- **Infrastructure:** AWS Lambda (Mangum), API Gateway, DynamoDB, S3, EventBridge
|
|
232
|
+
- **Frontend:** SvelteKit
|
|
233
|
+
- **SDK:** `pip install vindicara` (sync + async interfaces, zero heavy dependencies)
|
|
234
|
+
- **Tooling:** ruff, mypy --strict, pytest + hypothesis
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Roadmap
|
|
239
|
+
|
|
240
|
+
- [x] Core policy engine (deterministic rules)
|
|
241
|
+
- [x] SDK client with sync/async interfaces
|
|
242
|
+
- [x] FastAPI backend on AWS Lambda
|
|
243
|
+
- [x] Live production API
|
|
244
|
+
- [x] Marketing site with interactive demo
|
|
245
|
+
- [ ] PyPI package distribution
|
|
246
|
+
- [ ] MCP Security Scanner (standalone tool)
|
|
247
|
+
- [ ] Agent Identity & IAM module
|
|
248
|
+
- [ ] Behavioral drift detection
|
|
249
|
+
- [ ] Compliance-as-Code engine (EU AI Act, NIST, SOC 2)
|
|
250
|
+
- [ ] Managed dashboard
|
|
251
|
+
- [ ] SOC 2 Type I certification
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## About
|
|
256
|
+
|
|
257
|
+
Vindicara is built by [Kevin Minn](https://linkedin.com/in/kevinminn), founder of [SLTR Digital](https://sltrdigital.com). Solo technical founder. Cybersecurity student. Building the security infrastructure the agentic AI era demands.
|
|
258
|
+
|
|
259
|
+
- **Website:** [vindicara.io](https://vindicara.io)
|
|
260
|
+
- **API Docs:** [Live OpenAPI](https://d1xzz26fz4.execute-api.us-east-1.amazonaws.com/docs)
|
|
261
|
+
- **Email:** [hello@vindicara.io](mailto:hello@vindicara.io)
|
|
262
|
+
- **Twitter/X:** [@vindicara](https://x.com/vindicara)
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## License
|
|
267
|
+
|
|
268
|
+
Apache 2.0. See [LICENSE](LICENSE) for details.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
<p align="center">
|
|
273
|
+
<strong>Your agents are autonomous. Your security should be too.</strong><br><br>
|
|
274
|
+
<code>pip install vindicara</code>
|
|
275
|
+
</p>
|