agenticdome-python-sdk 1.2.9__tar.gz → 1.2.10__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.
Files changed (78) hide show
  1. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/MANIFEST.in +1 -0
  2. {agenticdome_python_sdk-1.2.9/agenticdome_python_sdk.egg-info → agenticdome_python_sdk-1.2.10}/PKG-INFO +101 -27
  3. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/README.md +89 -15
  4. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10/agenticdome_python_sdk.egg-info}/PKG-INFO +101 -27
  5. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/SOURCES.txt +20 -0
  6. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/requires.txt +11 -11
  7. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/demo.py +59 -23
  8. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/simulation.py +16 -1
  9. agenticdome_python_sdk-1.2.10/examples/PRODUCTION_INTEGRATION.md +167 -0
  10. agenticdome_python_sdk-1.2.10/examples/README.md +107 -0
  11. agenticdome_python_sdk-1.2.10/examples/frameworks/README.md +13 -0
  12. agenticdome_python_sdk-1.2.10/examples/frameworks/_shared.py +22 -0
  13. agenticdome_python_sdk-1.2.10/examples/frameworks/agno.py +4 -0
  14. agenticdome_python_sdk-1.2.10/examples/frameworks/autogen.py +4 -0
  15. agenticdome_python_sdk-1.2.10/examples/frameworks/aws_bedrock.py +4 -0
  16. agenticdome_python_sdk-1.2.10/examples/frameworks/claude_agent_sdk.py +4 -0
  17. agenticdome_python_sdk-1.2.10/examples/frameworks/crewai.py +4 -0
  18. agenticdome_python_sdk-1.2.10/examples/frameworks/custom_python.py +4 -0
  19. agenticdome_python_sdk-1.2.10/examples/frameworks/google_adk.py +4 -0
  20. agenticdome_python_sdk-1.2.10/examples/frameworks/langgraph.py +4 -0
  21. agenticdome_python_sdk-1.2.10/examples/frameworks/llamaindex.py +4 -0
  22. agenticdome_python_sdk-1.2.10/examples/frameworks/mcp.py +4 -0
  23. agenticdome_python_sdk-1.2.10/examples/frameworks/microsoft_agent_framework.py +4 -0
  24. agenticdome_python_sdk-1.2.10/examples/frameworks/microsoft_ai_foundry.py +4 -0
  25. agenticdome_python_sdk-1.2.10/examples/frameworks/openai_agents.py +4 -0
  26. agenticdome_python_sdk-1.2.10/examples/frameworks/pydanticai.py +4 -0
  27. agenticdome_python_sdk-1.2.10/examples/frameworks/smolagents.py +4 -0
  28. agenticdome_python_sdk-1.2.10/examples/local_simulation_gallery.py +32 -0
  29. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/pyproject.toml +12 -12
  30. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_local_simulation.py +116 -0
  31. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/LICENSE +0 -0
  32. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  33. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
  34. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  35. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/__init__.py +0 -0
  36. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/_framework_firewall.py +0 -0
  37. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/_mode.py +0 -0
  38. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/agno.py +0 -0
  39. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/autogen.py +0 -0
  40. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/aws_bedrock.py +0 -0
  41. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/claude.py +0 -0
  42. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/client.py +0 -0
  43. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/crewai.py +0 -0
  44. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/google_adk.py +0 -0
  45. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/identity.py +0 -0
  46. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/langgraph.py +0 -0
  47. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/llamaindex.py +0 -0
  48. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/mcp_host.py +0 -0
  49. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  50. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  51. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/openai_agents.py +0 -0
  52. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/proof.py +0 -0
  53. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/pydantic.py +0 -0
  54. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/smolagents.py +0 -0
  55. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/examples/attack_demo.py +0 -0
  56. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/examples/crewai_agenticdome_firewall.py +0 -0
  57. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/examples/langgraph_agenticdome_firewall.py +0 -0
  58. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/setup.cfg +0 -0
  59. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/setup.py +0 -0
  60. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_agno_integration.py +0 -0
  61. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_attack_demo.py +0 -0
  62. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_autogen_integration.py +0 -0
  63. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_aws_bedrock_integration.py +0 -0
  64. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_claude_integration.py +0 -0
  65. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_client.py +0 -0
  66. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_crewai_integration.py +0 -0
  67. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_execution_broker.py +0 -0
  68. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_google_adk_integration.py +0 -0
  69. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_identity_context.py +0 -0
  70. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_langgraph_integration.py +0 -0
  71. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_live_tenant.py +0 -0
  72. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_llamaindex_integration.py +0 -0
  73. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_mcp_host_integration.py +0 -0
  74. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_microsoft_agent_framework_integration.py +0 -0
  75. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_microsoft_ai_foundry_integration.py +0 -0
  76. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_openai_agents_integration.py +0 -0
  77. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_pydanticai_integration.py +0 -0
  78. {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_smolagents_integration.py +0 -0
@@ -4,6 +4,7 @@ include pyproject.toml
4
4
  include setup.py
5
5
 
6
6
  recursive-include examples *.py
7
+ recursive-include examples *.md
7
8
  recursive-include tests *.py
8
9
  global-exclude __pycache__
9
10
  global-exclude *.py[cod]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.9
3
+ Version: 1.2.10
4
4
  Summary: Official Python SDK for AgenticDome security guardrails, DLP, tool authorization, and multi-agent delegation enforcement.
5
5
  Author: AgenticDome
6
6
  License: Proprietary
@@ -34,10 +34,10 @@ Requires-Dist: redis>=4.5.0; extra == "redis"
34
34
  Provides-Extra: pop
35
35
  Requires-Dist: cryptography>=42.0.0; extra == "pop"
36
36
  Provides-Extra: pydanticai
37
- Requires-Dist: pydantic-ai<=2.27.0,>=2.16.0; extra == "pydanticai"
37
+ Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydanticai"
38
38
  Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
39
39
  Provides-Extra: pydantic
40
- Requires-Dist: pydantic-ai<=2.27.0,>=2.16.0; extra == "pydantic"
40
+ Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydantic"
41
41
  Requires-Dist: anyio>=4.0.0; extra == "pydantic"
42
42
  Provides-Extra: langgraph
43
43
  Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "langgraph"
@@ -55,13 +55,13 @@ Requires-Dist: azure-identity==1.25.3; extra == "foundry"
55
55
  Provides-Extra: agno
56
56
  Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "agno"
57
57
  Provides-Extra: openai-agents
58
- Requires-Dist: openai-agents<=0.19.4,>=0.18.3; extra == "openai-agents"
58
+ Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "openai-agents"
59
59
  Provides-Extra: mcp
60
60
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
61
61
  Provides-Extra: bedrock
62
- Requires-Dist: boto3<=1.43.67,>=1.43.54; extra == "bedrock"
62
+ Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "bedrock"
63
63
  Provides-Extra: aws-bedrock
64
- Requires-Dist: boto3<=1.43.67,>=1.43.54; extra == "aws-bedrock"
64
+ Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "aws-bedrock"
65
65
  Provides-Extra: llamaindex
66
66
  Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
67
67
  Provides-Extra: llama-index
@@ -71,16 +71,16 @@ Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "google-adk"
71
71
  Provides-Extra: adk
72
72
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "adk"
73
73
  Provides-Extra: claude
74
- Requires-Dist: claude-agent-sdk<=0.2.134,>=0.2.126; extra == "claude"
74
+ Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude"
75
75
  Provides-Extra: claude-agent-sdk
76
- Requires-Dist: claude-agent-sdk<=0.2.134,>=0.2.126; extra == "claude-agent-sdk"
76
+ Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude-agent-sdk"
77
77
  Provides-Extra: smolagents
78
78
  Requires-Dist: smolagents==1.26.0; extra == "smolagents"
79
79
  Provides-Extra: all
80
80
  Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "all"
81
81
  Requires-Dist: redis>=4.5.0; extra == "all"
82
82
  Requires-Dist: cryptography>=42.0.0; extra == "all"
83
- Requires-Dist: pydantic-ai<=2.27.0,>=2.16.0; extra == "all"
83
+ Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "all"
84
84
  Requires-Dist: anyio>=4.0.0; extra == "all"
85
85
  Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "all"
86
86
  Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "all"
@@ -89,12 +89,12 @@ Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
89
89
  Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "all"
90
90
  Requires-Dist: azure-ai-projects<=2.4.0,>=2.3.0; extra == "all"
91
91
  Requires-Dist: azure-identity==1.25.3; extra == "all"
92
- Requires-Dist: openai-agents<=0.19.4,>=0.18.3; extra == "all"
92
+ Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "all"
93
93
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
94
- Requires-Dist: boto3<=1.43.67,>=1.43.54; extra == "all"
94
+ Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "all"
95
95
  Requires-Dist: llama-index==0.14.23; extra == "all"
96
96
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "all"
97
- Requires-Dist: claude-agent-sdk<=0.2.134,>=0.2.126; extra == "all"
97
+ Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "all"
98
98
  Requires-Dist: smolagents==1.26.0; extra == "all"
99
99
  Provides-Extra: dev
100
100
  Requires-Dist: pytest>=8.0.0; extra == "dev"
@@ -117,6 +117,53 @@ Dynamic: license-file
117
117
 
118
118
  **One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
119
119
 
120
+ ## Five-minute developer trial
121
+
122
+ ### 1. Install
123
+
124
+ ```bash
125
+ pip install agenticdome-python-sdk
126
+ ```
127
+
128
+ ### 2. Enable the offline simulator
129
+
130
+ ```bash
131
+ export AGENTICDOME_MODE=local_sim
132
+ ```
133
+
134
+ No account, API key, tenant, network connection, or third-party framework package is required.
135
+
136
+ ### 3. See one allowed and one blocked action
137
+
138
+ ```bash
139
+ agenticdome-demo --framework langgraph --scenario both
140
+ ```
141
+
142
+ Look for `ALLOWED — TOOL WOULD EXECUTE` followed by `BLOCKED — TOOL WOULD NOT EXECUTE`. These are simulations: the example does not execute either tool.
143
+
144
+ ### 4. Select your framework
145
+
146
+ ```bash
147
+ agenticdome-demo --list-frameworks
148
+ agenticdome-demo --framework all --scenario both
149
+ ```
150
+
151
+ You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md) to find the exact construction file, public attachment call and local execution boundary for your framework.
152
+
153
+ ### 5. Connect the same integration to AgenticDome
154
+
155
+ When you are ready to test real tenant policy, remove `AGENTICDOME_MODE=local_sim`, obtain the assigned runtime sidecar URL, Runtime/SDK API key and tenant ID from AgenticDome, and configure:
156
+
157
+ ```bash
158
+ unset AGENTICDOME_MODE
159
+ export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example"
160
+ export AGENTICDOME_API_KEY="your_runtime_sdk_key"
161
+ export AGENTICDOME_TENANT_ID="your_tenant_id"
162
+ agenticdome-demo --framework langgraph --scenario both --live
163
+ ```
164
+
165
+ Offline simulation demonstrates the SDK decision flow using a bundled public baseline. Only live mode applies the customer's policy, topology, telemetry, signed decisions and runtime enforcement.
166
+
120
167
  ```python
121
168
  # The 30-second version: block a prompt-injected refund before it executes.
122
169
  import agenticdome_sdk.crewai # registers global CrewAI security hooks
@@ -130,18 +177,19 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
130
177
 
131
178
  ## Contents
132
179
 
133
- 1. [Why AgenticDome](#why-agenticdome)
134
- 2. [How It Works](#how-it-works)
135
- 3. [Quickstart](#quickstart)
136
- 4. [Installation](#installation)
137
- 5. [Configuration](#configuration)
138
- 6. [Choosing Your Integration Point](#choosing-your-integration-point)
139
- 7. [Framework Integrations](#framework-integrations)
180
+ 1. [Five-minute developer trial](#five-minute-developer-trial)
181
+ 2. [Why AgenticDome](#why-agenticdome)
182
+ 3. [How It Works](#how-it-works)
183
+ 4. [Quickstart](#quickstart)
184
+ 5. [Installation](#installation)
185
+ 6. [Configuration](#configuration)
186
+ 7. [Choosing Your Integration Point](#choosing-your-integration-point)
187
+ 8. [Framework Integrations](#framework-integrations)
140
188
  - [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AutoGen](#microsoft-autogen) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Claude Agent SDK](#claude-agent-sdk) · [Hugging Face smolagents](#hugging-face-smolagents) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
141
- 8. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
142
- 9. [Production Deployment](#production-deployment)
143
- 10. [Package Build and Verification](#package-build-and-verification)
144
- 11. [License](#license)
189
+ 9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
190
+ 10. [Production Deployment](#production-deployment)
191
+ 11. [Package Build and Verification](#package-build-and-verification)
192
+ 12. [License](#license)
145
193
 
146
194
  ---
147
195
 
@@ -254,11 +302,17 @@ Start with a network-free simulation, then connect the same SDK to your assigned
254
302
 
255
303
  ```bash
256
304
  pip install agenticdome-python-sdk
257
- agenticdome-demo --framework langgraph --scenario refund_hijack
305
+ # Show one ALLOWED and one BLOCKED action for LangGraph.
306
+ agenticdome-demo --framework langgraph --scenario both
307
+
308
+ # Or prove the same offline contract across all 15 integrations.
309
+ agenticdome-demo --framework all --scenario both
258
310
  agenticdome-demo --list-frameworks
259
311
  ```
260
312
 
261
- This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise a wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
313
+ This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise any wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
314
+
315
+ Browse the public [`examples/`](examples/README.md) gallery for a runnable allowed/blocked example for CrewAI, PydanticAI, LangGraph, Microsoft Agent Framework, AutoGen, AI Foundry, OpenAI Agents, Claude, smolagents, Agno, Google ADK, LlamaIndex, Bedrock, MCP, and custom Python. Local blocked/redacted results emit safe terminal logs containing verdict metadata only—not raw prompts, arguments, keys, or secrets.
262
316
 
263
317
  **2. Onboard for real enforcement.** Create an account in the AgenticDome Management Console, obtain your tenant identifier and Runtime / SDK API key, and identify the tenant's assigned runtime sidecar.
264
318
 
@@ -292,8 +346,13 @@ result = crew.kickoff()
292
346
 
293
347
  ```bash
294
348
  # Local, deterministic and network-free.
295
- agenticdome-demo --framework crewai --scenario refund_hijack
296
- agenticdome-demo --framework langgraph --scenario refund_hijack
349
+ agenticdome-demo --framework crewai --scenario both
350
+ agenticdome-demo --framework langgraph --scenario both
351
+ agenticdome-demo --framework claude --scenario both
352
+ agenticdome-demo --framework smolagents --scenario both
353
+ agenticdome-demo --framework all --scenario both
354
+
355
+ # Additional blocked-only examples for focused attack demonstrations.
297
356
  agenticdome-demo --framework claude --scenario metadata_exfil
298
357
  agenticdome-demo --framework smolagents --scenario metadata_exfil
299
358
 
@@ -352,6 +411,18 @@ AgenticDome has two setup layers, and both are required:
352
411
 
353
412
  Environment variables do **not** intercept framework execution by themselves.
354
413
 
414
+ ### Offline community trial
415
+
416
+ Every supported Python integration inherits the same credential-free, network-free simulator:
417
+
418
+ ```bash
419
+ export AGENTICDOME_MODE="local_sim"
420
+ ```
421
+
422
+ No API base, API key, tenant ID, or third-party framework package is needed to run the public demonstration. `ALLOWED` decisions are logged at `INFO`; `BLOCKED` and `REDACTED` decisions are logged at `WARNING` so they are visible in a normal terminal. Logs contain decision metadata only and exclude raw prompt text and tool arguments.
423
+
424
+ Local simulation is deliberately limited: it uses the bundled public baseline, does not execute tools, does not use tenant policy, topology, signed provenance, runtime telemetry, decision tokens, or execution receipts, and cannot satisfy an enforced execution broker. It is refused whenever `AGENTICDOME_PRODUCTION_MODE=true`.
425
+
355
426
  ### Required variables
356
427
 
357
428
  ```bash
@@ -408,6 +479,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
408
479
  | `AGENTICDOME_API_BASE` | string | required | Tenant runtime sidecar origin, e.g. `https://demo-sidecar.agenticdome.io`. Separate from the control-plane console URL. |
409
480
  | `AGENTICDOME_API_KEY` | string | required | API key generated in the AgenticDome console. |
410
481
  | `AGENTICDOME_TENANT_ID` | string | required | Tenant or organization isolation namespace. |
482
+ | `AGENTICDOME_MODE` | `live` / `local_sim` | `live` | Selects real sidecar enforcement or the credential-free, network-free demonstration evaluator. `local_sim` is refused in production mode. |
411
483
  | `AGENTICDOME_PLATFORM` | string | framework-specific | Runtime platform label included in policy context. |
412
484
  | `AGENTICDOME_TIMEOUT_S` | integer | `20` | HTTP timeout in seconds for SDK calls. |
413
485
  | `AGENTICDOME_FAIL_CLOSED` | boolean | `true` | Blocks execution if security checks fail. |
@@ -510,6 +582,8 @@ Every framework adapter exposes the same family of local hardening controls, pre
510
582
 
511
583
  One table, one decision. Find your runtime, apply the required code action, and jump to its guide. In every case, environment config alone is **not** enough — hooks activate only after the code attachment shown here.
512
584
 
585
+ For a shorter operator/developer handoff, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md). It includes the attachment boundary, bypass warning and production proof checklist for every supported framework without exposing private policy or detection internals.
586
+
513
587
  | Runtime | SDK module | Global code location | Required code action | Tool-level enforcement |
514
588
  | :--- | :--- | :--- | :--- | :--- |
515
589
  | [CrewAI](#crewai) | `agenticdome_sdk.crewai` | Application bootstrap, before crews are created | `import agenticdome_sdk.crewai` once for global hooks, or `AgenticDomeCrewAIFirewall().attach(...)` for scoped hooks | `secure_tool(...)` for explicit local wrapper enforcement, schema validation, sanitized-argument execution |
@@ -10,6 +10,53 @@
10
10
 
11
11
  **One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
12
12
 
13
+ ## Five-minute developer trial
14
+
15
+ ### 1. Install
16
+
17
+ ```bash
18
+ pip install agenticdome-python-sdk
19
+ ```
20
+
21
+ ### 2. Enable the offline simulator
22
+
23
+ ```bash
24
+ export AGENTICDOME_MODE=local_sim
25
+ ```
26
+
27
+ No account, API key, tenant, network connection, or third-party framework package is required.
28
+
29
+ ### 3. See one allowed and one blocked action
30
+
31
+ ```bash
32
+ agenticdome-demo --framework langgraph --scenario both
33
+ ```
34
+
35
+ Look for `ALLOWED — TOOL WOULD EXECUTE` followed by `BLOCKED — TOOL WOULD NOT EXECUTE`. These are simulations: the example does not execute either tool.
36
+
37
+ ### 4. Select your framework
38
+
39
+ ```bash
40
+ agenticdome-demo --list-frameworks
41
+ agenticdome-demo --framework all --scenario both
42
+ ```
43
+
44
+ You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md) to find the exact construction file, public attachment call and local execution boundary for your framework.
45
+
46
+ ### 5. Connect the same integration to AgenticDome
47
+
48
+ When you are ready to test real tenant policy, remove `AGENTICDOME_MODE=local_sim`, obtain the assigned runtime sidecar URL, Runtime/SDK API key and tenant ID from AgenticDome, and configure:
49
+
50
+ ```bash
51
+ unset AGENTICDOME_MODE
52
+ export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example"
53
+ export AGENTICDOME_API_KEY="your_runtime_sdk_key"
54
+ export AGENTICDOME_TENANT_ID="your_tenant_id"
55
+ agenticdome-demo --framework langgraph --scenario both --live
56
+ ```
57
+
58
+ Offline simulation demonstrates the SDK decision flow using a bundled public baseline. Only live mode applies the customer's policy, topology, telemetry, signed decisions and runtime enforcement.
59
+
13
60
  ```python
14
61
  # The 30-second version: block a prompt-injected refund before it executes.
15
62
  import agenticdome_sdk.crewai # registers global CrewAI security hooks
@@ -23,18 +70,19 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
23
70
 
24
71
  ## Contents
25
72
 
26
- 1. [Why AgenticDome](#why-agenticdome)
27
- 2. [How It Works](#how-it-works)
28
- 3. [Quickstart](#quickstart)
29
- 4. [Installation](#installation)
30
- 5. [Configuration](#configuration)
31
- 6. [Choosing Your Integration Point](#choosing-your-integration-point)
32
- 7. [Framework Integrations](#framework-integrations)
73
+ 1. [Five-minute developer trial](#five-minute-developer-trial)
74
+ 2. [Why AgenticDome](#why-agenticdome)
75
+ 3. [How It Works](#how-it-works)
76
+ 4. [Quickstart](#quickstart)
77
+ 5. [Installation](#installation)
78
+ 6. [Configuration](#configuration)
79
+ 7. [Choosing Your Integration Point](#choosing-your-integration-point)
80
+ 8. [Framework Integrations](#framework-integrations)
33
81
  - [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AutoGen](#microsoft-autogen) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Claude Agent SDK](#claude-agent-sdk) · [Hugging Face smolagents](#hugging-face-smolagents) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
34
- 8. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
35
- 9. [Production Deployment](#production-deployment)
36
- 10. [Package Build and Verification](#package-build-and-verification)
37
- 11. [License](#license)
82
+ 9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
83
+ 10. [Production Deployment](#production-deployment)
84
+ 11. [Package Build and Verification](#package-build-and-verification)
85
+ 12. [License](#license)
38
86
 
39
87
  ---
40
88
 
@@ -147,11 +195,17 @@ Start with a network-free simulation, then connect the same SDK to your assigned
147
195
 
148
196
  ```bash
149
197
  pip install agenticdome-python-sdk
150
- agenticdome-demo --framework langgraph --scenario refund_hijack
198
+ # Show one ALLOWED and one BLOCKED action for LangGraph.
199
+ agenticdome-demo --framework langgraph --scenario both
200
+
201
+ # Or prove the same offline contract across all 15 integrations.
202
+ agenticdome-demo --framework all --scenario both
151
203
  agenticdome-demo --list-frameworks
152
204
  ```
153
205
 
154
- This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise a wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
206
+ This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise any wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
207
+
208
+ Browse the public [`examples/`](examples/README.md) gallery for a runnable allowed/blocked example for CrewAI, PydanticAI, LangGraph, Microsoft Agent Framework, AutoGen, AI Foundry, OpenAI Agents, Claude, smolagents, Agno, Google ADK, LlamaIndex, Bedrock, MCP, and custom Python. Local blocked/redacted results emit safe terminal logs containing verdict metadata only—not raw prompts, arguments, keys, or secrets.
155
209
 
156
210
  **2. Onboard for real enforcement.** Create an account in the AgenticDome Management Console, obtain your tenant identifier and Runtime / SDK API key, and identify the tenant's assigned runtime sidecar.
157
211
 
@@ -185,8 +239,13 @@ result = crew.kickoff()
185
239
 
186
240
  ```bash
187
241
  # Local, deterministic and network-free.
188
- agenticdome-demo --framework crewai --scenario refund_hijack
189
- agenticdome-demo --framework langgraph --scenario refund_hijack
242
+ agenticdome-demo --framework crewai --scenario both
243
+ agenticdome-demo --framework langgraph --scenario both
244
+ agenticdome-demo --framework claude --scenario both
245
+ agenticdome-demo --framework smolagents --scenario both
246
+ agenticdome-demo --framework all --scenario both
247
+
248
+ # Additional blocked-only examples for focused attack demonstrations.
190
249
  agenticdome-demo --framework claude --scenario metadata_exfil
191
250
  agenticdome-demo --framework smolagents --scenario metadata_exfil
192
251
 
@@ -245,6 +304,18 @@ AgenticDome has two setup layers, and both are required:
245
304
 
246
305
  Environment variables do **not** intercept framework execution by themselves.
247
306
 
307
+ ### Offline community trial
308
+
309
+ Every supported Python integration inherits the same credential-free, network-free simulator:
310
+
311
+ ```bash
312
+ export AGENTICDOME_MODE="local_sim"
313
+ ```
314
+
315
+ No API base, API key, tenant ID, or third-party framework package is needed to run the public demonstration. `ALLOWED` decisions are logged at `INFO`; `BLOCKED` and `REDACTED` decisions are logged at `WARNING` so they are visible in a normal terminal. Logs contain decision metadata only and exclude raw prompt text and tool arguments.
316
+
317
+ Local simulation is deliberately limited: it uses the bundled public baseline, does not execute tools, does not use tenant policy, topology, signed provenance, runtime telemetry, decision tokens, or execution receipts, and cannot satisfy an enforced execution broker. It is refused whenever `AGENTICDOME_PRODUCTION_MODE=true`.
318
+
248
319
  ### Required variables
249
320
 
250
321
  ```bash
@@ -301,6 +372,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
301
372
  | `AGENTICDOME_API_BASE` | string | required | Tenant runtime sidecar origin, e.g. `https://demo-sidecar.agenticdome.io`. Separate from the control-plane console URL. |
302
373
  | `AGENTICDOME_API_KEY` | string | required | API key generated in the AgenticDome console. |
303
374
  | `AGENTICDOME_TENANT_ID` | string | required | Tenant or organization isolation namespace. |
375
+ | `AGENTICDOME_MODE` | `live` / `local_sim` | `live` | Selects real sidecar enforcement or the credential-free, network-free demonstration evaluator. `local_sim` is refused in production mode. |
304
376
  | `AGENTICDOME_PLATFORM` | string | framework-specific | Runtime platform label included in policy context. |
305
377
  | `AGENTICDOME_TIMEOUT_S` | integer | `20` | HTTP timeout in seconds for SDK calls. |
306
378
  | `AGENTICDOME_FAIL_CLOSED` | boolean | `true` | Blocks execution if security checks fail. |
@@ -403,6 +475,8 @@ Every framework adapter exposes the same family of local hardening controls, pre
403
475
 
404
476
  One table, one decision. Find your runtime, apply the required code action, and jump to its guide. In every case, environment config alone is **not** enough — hooks activate only after the code attachment shown here.
405
477
 
478
+ For a shorter operator/developer handoff, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md). It includes the attachment boundary, bypass warning and production proof checklist for every supported framework without exposing private policy or detection internals.
479
+
406
480
  | Runtime | SDK module | Global code location | Required code action | Tool-level enforcement |
407
481
  | :--- | :--- | :--- | :--- | :--- |
408
482
  | [CrewAI](#crewai) | `agenticdome_sdk.crewai` | Application bootstrap, before crews are created | `import agenticdome_sdk.crewai` once for global hooks, or `AgenticDomeCrewAIFirewall().attach(...)` for scoped hooks | `secure_tool(...)` for explicit local wrapper enforcement, schema validation, sanitized-argument execution |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.9
3
+ Version: 1.2.10
4
4
  Summary: Official Python SDK for AgenticDome security guardrails, DLP, tool authorization, and multi-agent delegation enforcement.
5
5
  Author: AgenticDome
6
6
  License: Proprietary
@@ -34,10 +34,10 @@ Requires-Dist: redis>=4.5.0; extra == "redis"
34
34
  Provides-Extra: pop
35
35
  Requires-Dist: cryptography>=42.0.0; extra == "pop"
36
36
  Provides-Extra: pydanticai
37
- Requires-Dist: pydantic-ai<=2.27.0,>=2.16.0; extra == "pydanticai"
37
+ Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydanticai"
38
38
  Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
39
39
  Provides-Extra: pydantic
40
- Requires-Dist: pydantic-ai<=2.27.0,>=2.16.0; extra == "pydantic"
40
+ Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydantic"
41
41
  Requires-Dist: anyio>=4.0.0; extra == "pydantic"
42
42
  Provides-Extra: langgraph
43
43
  Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "langgraph"
@@ -55,13 +55,13 @@ Requires-Dist: azure-identity==1.25.3; extra == "foundry"
55
55
  Provides-Extra: agno
56
56
  Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "agno"
57
57
  Provides-Extra: openai-agents
58
- Requires-Dist: openai-agents<=0.19.4,>=0.18.3; extra == "openai-agents"
58
+ Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "openai-agents"
59
59
  Provides-Extra: mcp
60
60
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
61
61
  Provides-Extra: bedrock
62
- Requires-Dist: boto3<=1.43.67,>=1.43.54; extra == "bedrock"
62
+ Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "bedrock"
63
63
  Provides-Extra: aws-bedrock
64
- Requires-Dist: boto3<=1.43.67,>=1.43.54; extra == "aws-bedrock"
64
+ Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "aws-bedrock"
65
65
  Provides-Extra: llamaindex
66
66
  Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
67
67
  Provides-Extra: llama-index
@@ -71,16 +71,16 @@ Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "google-adk"
71
71
  Provides-Extra: adk
72
72
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "adk"
73
73
  Provides-Extra: claude
74
- Requires-Dist: claude-agent-sdk<=0.2.134,>=0.2.126; extra == "claude"
74
+ Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude"
75
75
  Provides-Extra: claude-agent-sdk
76
- Requires-Dist: claude-agent-sdk<=0.2.134,>=0.2.126; extra == "claude-agent-sdk"
76
+ Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude-agent-sdk"
77
77
  Provides-Extra: smolagents
78
78
  Requires-Dist: smolagents==1.26.0; extra == "smolagents"
79
79
  Provides-Extra: all
80
80
  Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "all"
81
81
  Requires-Dist: redis>=4.5.0; extra == "all"
82
82
  Requires-Dist: cryptography>=42.0.0; extra == "all"
83
- Requires-Dist: pydantic-ai<=2.27.0,>=2.16.0; extra == "all"
83
+ Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "all"
84
84
  Requires-Dist: anyio>=4.0.0; extra == "all"
85
85
  Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "all"
86
86
  Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "all"
@@ -89,12 +89,12 @@ Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
89
89
  Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "all"
90
90
  Requires-Dist: azure-ai-projects<=2.4.0,>=2.3.0; extra == "all"
91
91
  Requires-Dist: azure-identity==1.25.3; extra == "all"
92
- Requires-Dist: openai-agents<=0.19.4,>=0.18.3; extra == "all"
92
+ Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "all"
93
93
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
94
- Requires-Dist: boto3<=1.43.67,>=1.43.54; extra == "all"
94
+ Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "all"
95
95
  Requires-Dist: llama-index==0.14.23; extra == "all"
96
96
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "all"
97
- Requires-Dist: claude-agent-sdk<=0.2.134,>=0.2.126; extra == "all"
97
+ Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "all"
98
98
  Requires-Dist: smolagents==1.26.0; extra == "all"
99
99
  Provides-Extra: dev
100
100
  Requires-Dist: pytest>=8.0.0; extra == "dev"
@@ -117,6 +117,53 @@ Dynamic: license-file
117
117
 
118
118
  **One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
119
119
 
120
+ ## Five-minute developer trial
121
+
122
+ ### 1. Install
123
+
124
+ ```bash
125
+ pip install agenticdome-python-sdk
126
+ ```
127
+
128
+ ### 2. Enable the offline simulator
129
+
130
+ ```bash
131
+ export AGENTICDOME_MODE=local_sim
132
+ ```
133
+
134
+ No account, API key, tenant, network connection, or third-party framework package is required.
135
+
136
+ ### 3. See one allowed and one blocked action
137
+
138
+ ```bash
139
+ agenticdome-demo --framework langgraph --scenario both
140
+ ```
141
+
142
+ Look for `ALLOWED — TOOL WOULD EXECUTE` followed by `BLOCKED — TOOL WOULD NOT EXECUTE`. These are simulations: the example does not execute either tool.
143
+
144
+ ### 4. Select your framework
145
+
146
+ ```bash
147
+ agenticdome-demo --list-frameworks
148
+ agenticdome-demo --framework all --scenario both
149
+ ```
150
+
151
+ You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md) to find the exact construction file, public attachment call and local execution boundary for your framework.
152
+
153
+ ### 5. Connect the same integration to AgenticDome
154
+
155
+ When you are ready to test real tenant policy, remove `AGENTICDOME_MODE=local_sim`, obtain the assigned runtime sidecar URL, Runtime/SDK API key and tenant ID from AgenticDome, and configure:
156
+
157
+ ```bash
158
+ unset AGENTICDOME_MODE
159
+ export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example"
160
+ export AGENTICDOME_API_KEY="your_runtime_sdk_key"
161
+ export AGENTICDOME_TENANT_ID="your_tenant_id"
162
+ agenticdome-demo --framework langgraph --scenario both --live
163
+ ```
164
+
165
+ Offline simulation demonstrates the SDK decision flow using a bundled public baseline. Only live mode applies the customer's policy, topology, telemetry, signed decisions and runtime enforcement.
166
+
120
167
  ```python
121
168
  # The 30-second version: block a prompt-injected refund before it executes.
122
169
  import agenticdome_sdk.crewai # registers global CrewAI security hooks
@@ -130,18 +177,19 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
130
177
 
131
178
  ## Contents
132
179
 
133
- 1. [Why AgenticDome](#why-agenticdome)
134
- 2. [How It Works](#how-it-works)
135
- 3. [Quickstart](#quickstart)
136
- 4. [Installation](#installation)
137
- 5. [Configuration](#configuration)
138
- 6. [Choosing Your Integration Point](#choosing-your-integration-point)
139
- 7. [Framework Integrations](#framework-integrations)
180
+ 1. [Five-minute developer trial](#five-minute-developer-trial)
181
+ 2. [Why AgenticDome](#why-agenticdome)
182
+ 3. [How It Works](#how-it-works)
183
+ 4. [Quickstart](#quickstart)
184
+ 5. [Installation](#installation)
185
+ 6. [Configuration](#configuration)
186
+ 7. [Choosing Your Integration Point](#choosing-your-integration-point)
187
+ 8. [Framework Integrations](#framework-integrations)
140
188
  - [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AutoGen](#microsoft-autogen) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Claude Agent SDK](#claude-agent-sdk) · [Hugging Face smolagents](#hugging-face-smolagents) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
141
- 8. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
142
- 9. [Production Deployment](#production-deployment)
143
- 10. [Package Build and Verification](#package-build-and-verification)
144
- 11. [License](#license)
189
+ 9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
190
+ 10. [Production Deployment](#production-deployment)
191
+ 11. [Package Build and Verification](#package-build-and-verification)
192
+ 12. [License](#license)
145
193
 
146
194
  ---
147
195
 
@@ -254,11 +302,17 @@ Start with a network-free simulation, then connect the same SDK to your assigned
254
302
 
255
303
  ```bash
256
304
  pip install agenticdome-python-sdk
257
- agenticdome-demo --framework langgraph --scenario refund_hijack
305
+ # Show one ALLOWED and one BLOCKED action for LangGraph.
306
+ agenticdome-demo --framework langgraph --scenario both
307
+
308
+ # Or prove the same offline contract across all 15 integrations.
309
+ agenticdome-demo --framework all --scenario both
258
310
  agenticdome-demo --list-frameworks
259
311
  ```
260
312
 
261
- This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise a wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
313
+ This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise any wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
314
+
315
+ Browse the public [`examples/`](examples/README.md) gallery for a runnable allowed/blocked example for CrewAI, PydanticAI, LangGraph, Microsoft Agent Framework, AutoGen, AI Foundry, OpenAI Agents, Claude, smolagents, Agno, Google ADK, LlamaIndex, Bedrock, MCP, and custom Python. Local blocked/redacted results emit safe terminal logs containing verdict metadata only—not raw prompts, arguments, keys, or secrets.
262
316
 
263
317
  **2. Onboard for real enforcement.** Create an account in the AgenticDome Management Console, obtain your tenant identifier and Runtime / SDK API key, and identify the tenant's assigned runtime sidecar.
264
318
 
@@ -292,8 +346,13 @@ result = crew.kickoff()
292
346
 
293
347
  ```bash
294
348
  # Local, deterministic and network-free.
295
- agenticdome-demo --framework crewai --scenario refund_hijack
296
- agenticdome-demo --framework langgraph --scenario refund_hijack
349
+ agenticdome-demo --framework crewai --scenario both
350
+ agenticdome-demo --framework langgraph --scenario both
351
+ agenticdome-demo --framework claude --scenario both
352
+ agenticdome-demo --framework smolagents --scenario both
353
+ agenticdome-demo --framework all --scenario both
354
+
355
+ # Additional blocked-only examples for focused attack demonstrations.
297
356
  agenticdome-demo --framework claude --scenario metadata_exfil
298
357
  agenticdome-demo --framework smolagents --scenario metadata_exfil
299
358
 
@@ -352,6 +411,18 @@ AgenticDome has two setup layers, and both are required:
352
411
 
353
412
  Environment variables do **not** intercept framework execution by themselves.
354
413
 
414
+ ### Offline community trial
415
+
416
+ Every supported Python integration inherits the same credential-free, network-free simulator:
417
+
418
+ ```bash
419
+ export AGENTICDOME_MODE="local_sim"
420
+ ```
421
+
422
+ No API base, API key, tenant ID, or third-party framework package is needed to run the public demonstration. `ALLOWED` decisions are logged at `INFO`; `BLOCKED` and `REDACTED` decisions are logged at `WARNING` so they are visible in a normal terminal. Logs contain decision metadata only and exclude raw prompt text and tool arguments.
423
+
424
+ Local simulation is deliberately limited: it uses the bundled public baseline, does not execute tools, does not use tenant policy, topology, signed provenance, runtime telemetry, decision tokens, or execution receipts, and cannot satisfy an enforced execution broker. It is refused whenever `AGENTICDOME_PRODUCTION_MODE=true`.
425
+
355
426
  ### Required variables
356
427
 
357
428
  ```bash
@@ -408,6 +479,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
408
479
  | `AGENTICDOME_API_BASE` | string | required | Tenant runtime sidecar origin, e.g. `https://demo-sidecar.agenticdome.io`. Separate from the control-plane console URL. |
409
480
  | `AGENTICDOME_API_KEY` | string | required | API key generated in the AgenticDome console. |
410
481
  | `AGENTICDOME_TENANT_ID` | string | required | Tenant or organization isolation namespace. |
482
+ | `AGENTICDOME_MODE` | `live` / `local_sim` | `live` | Selects real sidecar enforcement or the credential-free, network-free demonstration evaluator. `local_sim` is refused in production mode. |
411
483
  | `AGENTICDOME_PLATFORM` | string | framework-specific | Runtime platform label included in policy context. |
412
484
  | `AGENTICDOME_TIMEOUT_S` | integer | `20` | HTTP timeout in seconds for SDK calls. |
413
485
  | `AGENTICDOME_FAIL_CLOSED` | boolean | `true` | Blocks execution if security checks fail. |
@@ -510,6 +582,8 @@ Every framework adapter exposes the same family of local hardening controls, pre
510
582
 
511
583
  One table, one decision. Find your runtime, apply the required code action, and jump to its guide. In every case, environment config alone is **not** enough — hooks activate only after the code attachment shown here.
512
584
 
585
+ For a shorter operator/developer handoff, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md). It includes the attachment boundary, bypass warning and production proof checklist for every supported framework without exposing private policy or detection internals.
586
+
513
587
  | Runtime | SDK module | Global code location | Required code action | Tool-level enforcement |
514
588
  | :--- | :--- | :--- | :--- | :--- |
515
589
  | [CrewAI](#crewai) | `agenticdome_sdk.crewai` | Application bootstrap, before crews are created | `import agenticdome_sdk.crewai` once for global hooks, or `AgenticDomeCrewAIFirewall().attach(...)` for scoped hooks | `secure_tool(...)` for explicit local wrapper enforcement, schema validation, sanitized-argument execution |
@@ -31,9 +31,29 @@ agenticdome_sdk/proof.py
31
31
  agenticdome_sdk/pydantic.py
32
32
  agenticdome_sdk/simulation.py
33
33
  agenticdome_sdk/smolagents.py
34
+ examples/PRODUCTION_INTEGRATION.md
35
+ examples/README.md
34
36
  examples/attack_demo.py
35
37
  examples/crewai_agenticdome_firewall.py
36
38
  examples/langgraph_agenticdome_firewall.py
39
+ examples/local_simulation_gallery.py
40
+ examples/frameworks/README.md
41
+ examples/frameworks/_shared.py
42
+ examples/frameworks/agno.py
43
+ examples/frameworks/autogen.py
44
+ examples/frameworks/aws_bedrock.py
45
+ examples/frameworks/claude_agent_sdk.py
46
+ examples/frameworks/crewai.py
47
+ examples/frameworks/custom_python.py
48
+ examples/frameworks/google_adk.py
49
+ examples/frameworks/langgraph.py
50
+ examples/frameworks/llamaindex.py
51
+ examples/frameworks/mcp.py
52
+ examples/frameworks/microsoft_agent_framework.py
53
+ examples/frameworks/microsoft_ai_foundry.py
54
+ examples/frameworks/openai_agents.py
55
+ examples/frameworks/pydanticai.py
56
+ examples/frameworks/smolagents.py
37
57
  tests/test_agno_integration.py
38
58
  tests/test_attack_demo.py
39
59
  tests/test_autogen_integration.py