agenticdome-python-sdk 1.2.15__tar.gz → 1.2.16__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 (101) hide show
  1. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/PKG-INFO +66 -31
  2. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/README.md +50 -15
  3. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_python_sdk.egg-info/PKG-INFO +66 -31
  4. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_python_sdk.egg-info/SOURCES.txt +1 -0
  5. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_python_sdk.egg-info/requires.txt +15 -15
  6. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/README.md +8 -0
  7. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/agno.md +5 -0
  8. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/autogen.md +5 -0
  9. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/aws-bedrock.md +5 -0
  10. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/claude-agent-sdk.md +5 -0
  11. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/crewai.md +7 -1
  12. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/custom-python.md +5 -0
  13. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/google-adk.md +5 -0
  14. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/langgraph.md +5 -0
  15. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/llamaindex.md +5 -0
  16. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/microsoft-agent-framework.md +5 -0
  17. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/microsoft-ai-foundry.md +5 -0
  18. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/openai-agents.md +5 -0
  19. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/pydanticai.md +5 -0
  20. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/frameworks/smolagents.md +5 -0
  21. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/mcp-integration.md +45 -3
  22. agenticdome_python_sdk-1.2.16/docs/runtime-deployment.md +51 -0
  23. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/PRODUCTION_INTEGRATION.md +8 -0
  24. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/README.md +6 -0
  25. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/pyproject.toml +16 -16
  26. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_framework_guides.py +22 -0
  27. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_mcp_launch_example.py +15 -0
  28. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/CONTRIBUTING.md +0 -0
  29. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/LICENSE +0 -0
  30. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/MANIFEST.in +0 -0
  31. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/NOTICE +0 -0
  32. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/SECURITY.md +0 -0
  33. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  34. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
  35. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  36. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/__init__.py +0 -0
  37. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/_framework_firewall.py +0 -0
  38. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/_mode.py +0 -0
  39. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/agno.py +0 -0
  40. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/autogen.py +0 -0
  41. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/aws_bedrock.py +0 -0
  42. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/claude.py +0 -0
  43. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/client.py +0 -0
  44. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/crewai.py +0 -0
  45. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/demo.py +0 -0
  46. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/google_adk.py +0 -0
  47. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/identity.py +0 -0
  48. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/langgraph.py +0 -0
  49. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/llamaindex.py +0 -0
  50. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/mcp_host.py +0 -0
  51. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  52. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  53. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/openai_agents.py +0 -0
  54. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/proof.py +0 -0
  55. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/pydantic.py +0 -0
  56. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/simulation.py +0 -0
  57. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/agenticdome_sdk/smolagents.py +0 -0
  58. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/docs/performance-evidence.md +0 -0
  59. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/attack_demo.py +0 -0
  60. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/crewai_agenticdome_firewall.py +0 -0
  61. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/README.md +0 -0
  62. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/_shared.py +0 -0
  63. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/agno.py +0 -0
  64. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/autogen.py +0 -0
  65. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/aws_bedrock.py +0 -0
  66. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/claude_agent_sdk.py +0 -0
  67. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/crewai.py +0 -0
  68. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/custom_python.py +0 -0
  69. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/google_adk.py +0 -0
  70. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/langgraph.py +0 -0
  71. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/llamaindex.py +0 -0
  72. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/mcp.py +0 -0
  73. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/microsoft_agent_framework.py +0 -0
  74. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/microsoft_ai_foundry.py +0 -0
  75. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/openai_agents.py +0 -0
  76. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/pydanticai.py +0 -0
  77. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/frameworks/smolagents.py +0 -0
  78. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/langgraph_agenticdome_firewall.py +0 -0
  79. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/local_simulation_gallery.py +0 -0
  80. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/examples/mcp_gateway_action_firewall.py +0 -0
  81. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/setup.cfg +0 -0
  82. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/setup.py +0 -0
  83. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_agno_integration.py +0 -0
  84. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_attack_demo.py +0 -0
  85. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_autogen_integration.py +0 -0
  86. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_aws_bedrock_integration.py +0 -0
  87. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_claude_integration.py +0 -0
  88. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_client.py +0 -0
  89. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_crewai_integration.py +0 -0
  90. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_execution_broker.py +0 -0
  91. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_google_adk_integration.py +0 -0
  92. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_identity_context.py +0 -0
  93. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_langgraph_integration.py +0 -0
  94. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_llamaindex_integration.py +0 -0
  95. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_local_simulation.py +0 -0
  96. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_mcp_host_integration.py +0 -0
  97. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_microsoft_agent_framework_integration.py +0 -0
  98. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_microsoft_ai_foundry_integration.py +0 -0
  99. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_openai_agents_integration.py +0 -0
  100. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_pydanticai_integration.py +0 -0
  101. {agenticdome_python_sdk-1.2.15 → agenticdome_python_sdk-1.2.16}/tests/test_smolagents_integration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.15
3
+ Version: 1.2.16
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-Expression: Apache-2.0
@@ -32,20 +32,20 @@ License-File: NOTICE
32
32
  Requires-Dist: requests>=2.31.0
33
33
  Requires-Dist: urllib3>=2.0.0
34
34
  Provides-Extra: crewai
35
- Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "crewai"
35
+ Requires-Dist: crewai<=1.15.15,>=1.15.5; extra == "crewai"
36
36
  Provides-Extra: redis
37
37
  Requires-Dist: redis>=4.5.0; extra == "redis"
38
38
  Provides-Extra: pop
39
39
  Requires-Dist: cryptography>=42.0.0; extra == "pop"
40
40
  Provides-Extra: pydanticai
41
- Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydanticai"
41
+ Requires-Dist: pydantic-ai<=2.28.0,>=2.16.0; extra == "pydanticai"
42
42
  Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
43
43
  Provides-Extra: pydantic
44
- Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydantic"
44
+ Requires-Dist: pydantic-ai<=2.28.0,>=2.16.0; extra == "pydantic"
45
45
  Requires-Dist: anyio>=4.0.0; extra == "pydantic"
46
46
  Provides-Extra: langgraph
47
- Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "langgraph"
48
- Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "langgraph"
47
+ Requires-Dist: langgraph<=1.2.11,>=1.2.9; extra == "langgraph"
48
+ Requires-Dist: langchain-core<=1.5.4,>=1.5.0; extra == "langgraph"
49
49
  Requires-Dist: langchain-openai==1.3.5; extra == "langgraph"
50
50
  Requires-Dist: anyio>=4.0.0; extra == "langgraph"
51
51
  Provides-Extra: microsoft
@@ -63,9 +63,9 @@ Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "openai-agents"
63
63
  Provides-Extra: mcp
64
64
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
65
65
  Provides-Extra: bedrock
66
- Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "bedrock"
66
+ Requires-Dist: boto3<=1.43.69,>=1.43.54; extra == "bedrock"
67
67
  Provides-Extra: aws-bedrock
68
- Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "aws-bedrock"
68
+ Requires-Dist: boto3<=1.43.69,>=1.43.54; extra == "aws-bedrock"
69
69
  Provides-Extra: llamaindex
70
70
  Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
71
71
  Provides-Extra: llama-index
@@ -75,19 +75,19 @@ Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "google-adk"
75
75
  Provides-Extra: adk
76
76
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "adk"
77
77
  Provides-Extra: claude
78
- Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude"
78
+ Requires-Dist: claude-agent-sdk<=0.2.136,>=0.2.126; extra == "claude"
79
79
  Provides-Extra: claude-agent-sdk
80
- Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude-agent-sdk"
80
+ Requires-Dist: claude-agent-sdk<=0.2.136,>=0.2.126; extra == "claude-agent-sdk"
81
81
  Provides-Extra: smolagents
82
82
  Requires-Dist: smolagents==1.26.0; extra == "smolagents"
83
83
  Provides-Extra: all
84
- Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "all"
84
+ Requires-Dist: crewai<=1.15.15,>=1.15.5; extra == "all"
85
85
  Requires-Dist: redis>=4.5.0; extra == "all"
86
86
  Requires-Dist: cryptography>=42.0.0; extra == "all"
87
- Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "all"
87
+ Requires-Dist: pydantic-ai<=2.28.0,>=2.16.0; extra == "all"
88
88
  Requires-Dist: anyio>=4.0.0; extra == "all"
89
- Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "all"
90
- Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "all"
89
+ Requires-Dist: langgraph<=1.2.11,>=1.2.9; extra == "all"
90
+ Requires-Dist: langchain-core<=1.5.4,>=1.5.0; extra == "all"
91
91
  Requires-Dist: langchain-openai==1.3.5; extra == "all"
92
92
  Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
93
93
  Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "all"
@@ -95,10 +95,10 @@ Requires-Dist: azure-ai-projects<=2.4.0,>=2.3.0; extra == "all"
95
95
  Requires-Dist: azure-identity==1.25.3; extra == "all"
96
96
  Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "all"
97
97
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
98
- Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "all"
98
+ Requires-Dist: boto3<=1.43.69,>=1.43.54; extra == "all"
99
99
  Requires-Dist: llama-index==0.14.23; extra == "all"
100
100
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "all"
101
- Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "all"
101
+ Requires-Dist: claude-agent-sdk<=0.2.136,>=0.2.126; extra == "all"
102
102
  Requires-Dist: smolagents==1.26.0; extra == "all"
103
103
  Provides-Extra: dev
104
104
  Requires-Dist: pytest>=8.0.0; extra == "dev"
@@ -266,6 +266,20 @@ Customer application |
266
266
 
267
267
  The SDK must be attached in application code; setting environment variables alone does not intercept a framework. The assigned sidecar authenticates the tenant and evaluates live requests. Tools still execute in the customer's environment or selected provider unless a separate execution service has been deliberately configured.
268
268
 
269
+ ### Where the assigned runtime runs
270
+
271
+ - **Managed service:** AgenticDome assigns the tenant a managed sidecar in the
272
+ selected supported geographic region, subject to availability and the
273
+ customer's plan or contract.
274
+ - **Sovereign deployment:** the runtime is deployed within the contracted
275
+ customer-controlled boundary, such as a dedicated VPC, customer cloud, or
276
+ on-premises environment.
277
+
278
+ The SDK does not choose or change runtime placement; it connects to the
279
+ tenant-specific API base supplied during onboarding. See
280
+ [Runtime location and Redis responsibilities](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/runtime-deployment.md) for
281
+ the deployment boundary and customer responsibilities.
282
+
269
283
  ### Who does what
270
284
 
271
285
  | Persona / component | Responsibilities | Commercial model |
@@ -372,7 +386,7 @@ pip install agenticdome-python-sdk
372
386
  | LlamaIndex | `pip install "agenticdome-python-sdk[llamaindex]"` |
373
387
  | AWS Bedrock / Bedrock Agents | `pip install "agenticdome-python-sdk[bedrock]"` |
374
388
  | MCP host / gateway | `pip install "agenticdome-python-sdk[mcp]"` |
375
- | Redis token storage | `pip install "agenticdome-python-sdk[redis]"` |
389
+ | Optional cross-process delegation store | `pip install "agenticdome-python-sdk[redis]"` |
376
390
  | Proof-of-possession helpers | `pip install "agenticdome-python-sdk[pop]"` |
377
391
  | All optional integrations | `pip install "agenticdome-python-sdk[all]"` |
378
392
 
@@ -426,7 +440,10 @@ export AGENTICDOME_REQUIRE_TOKEN="true"
426
440
  export AGENTICDOME_REPORT_INCIDENTS="true"
427
441
  ```
428
442
 
429
- For distributed multi-worker deployments, add Redis so delegation tokens move across workers:
443
+ Redis is **not required for normal SDK policy calls** or when using an assigned
444
+ managed sidecar. Add customer-managed Redis only when manager-to-specialist
445
+ delegation is authorised in one application process, worker, or pod and its
446
+ one-time handoff state must be consumed in another:
430
447
 
431
448
  ```bash
432
449
  export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
@@ -474,8 +491,8 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
474
491
  | `AGENTICDOME_REQUIRE_SESSION_ID` | boolean | framework-specific | Requires explicit session ID for strict audit mapping. |
475
492
  | `AGENTICDOME_DEFAULT_TOOL_PLATFORM` | string | `unknown` / `python` | Fallback platform for tools. |
476
493
  | `AGENTICDOME_HANDOFF_TOKEN_TTL_S` | integer | `900` | Delegation token TTL in seconds. |
477
- | `AGENTICDOME_REDIS_URL` | string | empty | Optional Redis connection URL for distributed token storage. |
478
- | `AGENTICDOME_REDIS_KEY_PREFIX` | string | framework-specific | Redis key prefix. |
494
+ | `AGENTICDOME_REDIS_URL` | string | empty | Optional customer-application Redis URL, needed only when one-time delegation state must cross processes, workers, or pods. It is unrelated to the managed sidecar's internal backing services. |
495
+ | `AGENTICDOME_REDIS_KEY_PREFIX` | string | framework-specific | Optional key prefix for the customer application's cross-process delegation store. |
479
496
  | `AGENTICDOME_TOKEN_HMAC_SECRET` | string | empty | Optional secret-manager value used by the SDK to protect shared delegation state. Applications should not inspect or construct that state. |
480
497
  | `AGENTICDOME_PRODUCTION_MODE` | boolean | `false` | Enables production hardening such as stable session ID enforcement. |
481
498
  | `AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD` | boolean | `true` | Requires a stable session/run/trace ID when production mode is enabled. |
@@ -1228,10 +1245,10 @@ export AGENTICDOME_PRODUCTION_MODE="true"
1228
1245
  export AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD="true"
1229
1246
  export AGENTICDOME_FOUNDRY_REQUIRE_OUTPUT_SANITIZATION_IN_PROD="true"
1230
1247
 
1231
- # For distributed delegated execution:
1232
- export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
1233
- export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:foundry:handoff"
1234
- export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-kms"
1248
+ # Optional only when delegated execution crosses processes/workers/pods:
1249
+ # export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
1250
+ # export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:foundry:handoff"
1251
+ # export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-kms"
1235
1252
  ```
1236
1253
 
1237
1254
  **Attach middleware, then secure the run boundary:**
@@ -1302,7 +1319,10 @@ def create_refund(ctx, args):
1302
1319
  return {"refund_id": "rfnd_123", "status": "created"}
1303
1320
  ```
1304
1321
 
1305
- **Delegated Foundry tool execution** — the authorization can store a decision token locally or in Redis; the specialist side consumes and verifies it before executing:
1322
+ **Delegated Foundry tool execution** — authorization stores decision state in
1323
+ memory by default. Configure the optional Redis store only when the specialist
1324
+ executes in another process, worker, or pod; the specialist consumes and
1325
+ verifies the decision before executing:
1306
1326
 
1307
1327
  ```python
1308
1328
  await firewall.authorize_manager_handoff(
@@ -1681,7 +1701,8 @@ firewall.pre_hook(
1681
1701
  )
1682
1702
  ```
1683
1703
 
1684
- The specialist side verifies a token passed in args or recovers it from Redis/in-memory storage; stored tokens are consumed once:
1704
+ The specialist side verifies a token passed in args or recovers it from the
1705
+ configured in-process or optional Redis store; stored tokens are consumed once:
1685
1706
 
1686
1707
  ```python
1687
1708
  firewall.pre_hook(
@@ -1733,7 +1754,7 @@ export AGENTICDOME_AGNO_OTEL_ENABLED="true"
1733
1754
  # export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-your-secret-manager"
1734
1755
  ```
1735
1756
 
1736
- Notes: environment configuration alone does not attach AgenticDome — call `attach_firewall(agent_or_team)`, register `create_hook_bundle()`, use the middleware/plugin helper, or assign `cybersec_pre_hook`, `cybersec_post_hook`, and `cybersec_tool_hook` directly. Hosted/remote tools can only be protected at the local request/response boundary. For production teams and AgentOS deployments, configure Redis so delegation tokens are available across workers and pods, and use stable `session_id`/`run_id`/`trace_id` values.
1757
+ Notes: environment configuration alone does not attach AgenticDome — call `attach_firewall(agent_or_team)`, register `create_hook_bundle()`, use the middleware/plugin helper, or assign `cybersec_pre_hook`, `cybersec_post_hook`, and `cybersec_tool_hook` directly. Hosted/remote tools can only be protected at the local request/response boundary. Use stable `session_id`/`run_id`/`trace_id` values. Configure the optional Redis store only when delegation authorization and execution cross workers or pods.
1737
1758
 
1738
1759
  Official references: [Agno SDK overview](https://docs.agno.com/features/sdk) · [Agent reference](https://docs.agno.com/reference/agents/agent)
1739
1760
 
@@ -2120,7 +2141,9 @@ result = await secure_refund(
2120
2141
  )
2121
2142
  ```
2122
2143
 
2123
- **Multi-agent delegation** — Redis is recommended when authorization and execution can happen in different workers or pods:
2144
+ **Multi-agent delegation** — the in-process store is sufficient when
2145
+ authorization and execution stay in one process. Configure Redis only when the
2146
+ one-time delegation state must cross workers or pods:
2124
2147
 
2125
2148
  ```python
2126
2149
  record = await firewall.authorize_manager_handoff(
@@ -2528,9 +2551,16 @@ The middleware supports configurable fail behavior:
2528
2551
  - **Fail closed** (`AGENTICDOME_FAIL_CLOSED="true"`): block execution if security checks fail or the AgenticDome API is unavailable. **Use this in production.**
2529
2552
  - **Fail open** (`AGENTICDOME_FAIL_CLOSED="false"`): allow execution for development or non-critical environments. Do not use in production unless you have compensating controls.
2530
2553
 
2531
- ### Redis token store for production clusters
2554
+ ### Optional Redis for cross-process delegation
2555
+
2556
+ Most customers do not need to install or configure Redis. Prompt screening,
2557
+ tool authorization, MCP checks, output review, and calls to an assigned runtime
2558
+ sidecar do not require customer-managed Redis. The Python adapters use an
2559
+ in-process token store by default.
2532
2560
 
2533
- In-memory token storage suits local development and single-process workers. For horizontally scaled deployments, use Redis so manager handoff tokens are shared across workers:
2561
+ Use Redis only when manager-to-specialist delegation is authorised in one
2562
+ application process, worker, or pod and the one-time handoff state must be
2563
+ consumed in another:
2534
2564
 
2535
2565
  ```bash
2536
2566
  pip install "agenticdome-python-sdk[redis]"
@@ -2539,7 +2569,12 @@ export AGENTICDOME_REDIS_URL="redis://redis.example.internal:6379/0"
2539
2569
  export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:runtime:handoff"
2540
2570
  ```
2541
2571
 
2542
- The SDK provides integrity-protected, one-time delegation state for supported shared-store deployments. Configure `AGENTICDOME_TOKEN_HMAC_SECRET` from a secret manager and let the SDK create and consume these records; applications should not construct or modify their internal representation.
2572
+ This is the customer application's shared token store; it is not the Redis
2573
+ service operated behind an AgenticDome-managed sidecar. The SDK provides
2574
+ integrity-protected, one-time delegation state for supported shared-store
2575
+ deployments. Configure `AGENTICDOME_TOKEN_HMAC_SECRET` from a secret manager and
2576
+ let the SDK create and consume these records; applications should not construct
2577
+ or modify their internal representation.
2543
2578
 
2544
2579
  ### Production checklist
2545
2580
 
@@ -154,6 +154,20 @@ Customer application |
154
154
 
155
155
  The SDK must be attached in application code; setting environment variables alone does not intercept a framework. The assigned sidecar authenticates the tenant and evaluates live requests. Tools still execute in the customer's environment or selected provider unless a separate execution service has been deliberately configured.
156
156
 
157
+ ### Where the assigned runtime runs
158
+
159
+ - **Managed service:** AgenticDome assigns the tenant a managed sidecar in the
160
+ selected supported geographic region, subject to availability and the
161
+ customer's plan or contract.
162
+ - **Sovereign deployment:** the runtime is deployed within the contracted
163
+ customer-controlled boundary, such as a dedicated VPC, customer cloud, or
164
+ on-premises environment.
165
+
166
+ The SDK does not choose or change runtime placement; it connects to the
167
+ tenant-specific API base supplied during onboarding. See
168
+ [Runtime location and Redis responsibilities](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/runtime-deployment.md) for
169
+ the deployment boundary and customer responsibilities.
170
+
157
171
  ### Who does what
158
172
 
159
173
  | Persona / component | Responsibilities | Commercial model |
@@ -260,7 +274,7 @@ pip install agenticdome-python-sdk
260
274
  | LlamaIndex | `pip install "agenticdome-python-sdk[llamaindex]"` |
261
275
  | AWS Bedrock / Bedrock Agents | `pip install "agenticdome-python-sdk[bedrock]"` |
262
276
  | MCP host / gateway | `pip install "agenticdome-python-sdk[mcp]"` |
263
- | Redis token storage | `pip install "agenticdome-python-sdk[redis]"` |
277
+ | Optional cross-process delegation store | `pip install "agenticdome-python-sdk[redis]"` |
264
278
  | Proof-of-possession helpers | `pip install "agenticdome-python-sdk[pop]"` |
265
279
  | All optional integrations | `pip install "agenticdome-python-sdk[all]"` |
266
280
 
@@ -314,7 +328,10 @@ export AGENTICDOME_REQUIRE_TOKEN="true"
314
328
  export AGENTICDOME_REPORT_INCIDENTS="true"
315
329
  ```
316
330
 
317
- For distributed multi-worker deployments, add Redis so delegation tokens move across workers:
331
+ Redis is **not required for normal SDK policy calls** or when using an assigned
332
+ managed sidecar. Add customer-managed Redis only when manager-to-specialist
333
+ delegation is authorised in one application process, worker, or pod and its
334
+ one-time handoff state must be consumed in another:
318
335
 
319
336
  ```bash
320
337
  export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
@@ -362,8 +379,8 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
362
379
  | `AGENTICDOME_REQUIRE_SESSION_ID` | boolean | framework-specific | Requires explicit session ID for strict audit mapping. |
363
380
  | `AGENTICDOME_DEFAULT_TOOL_PLATFORM` | string | `unknown` / `python` | Fallback platform for tools. |
364
381
  | `AGENTICDOME_HANDOFF_TOKEN_TTL_S` | integer | `900` | Delegation token TTL in seconds. |
365
- | `AGENTICDOME_REDIS_URL` | string | empty | Optional Redis connection URL for distributed token storage. |
366
- | `AGENTICDOME_REDIS_KEY_PREFIX` | string | framework-specific | Redis key prefix. |
382
+ | `AGENTICDOME_REDIS_URL` | string | empty | Optional customer-application Redis URL, needed only when one-time delegation state must cross processes, workers, or pods. It is unrelated to the managed sidecar's internal backing services. |
383
+ | `AGENTICDOME_REDIS_KEY_PREFIX` | string | framework-specific | Optional key prefix for the customer application's cross-process delegation store. |
367
384
  | `AGENTICDOME_TOKEN_HMAC_SECRET` | string | empty | Optional secret-manager value used by the SDK to protect shared delegation state. Applications should not inspect or construct that state. |
368
385
  | `AGENTICDOME_PRODUCTION_MODE` | boolean | `false` | Enables production hardening such as stable session ID enforcement. |
369
386
  | `AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD` | boolean | `true` | Requires a stable session/run/trace ID when production mode is enabled. |
@@ -1116,10 +1133,10 @@ export AGENTICDOME_PRODUCTION_MODE="true"
1116
1133
  export AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD="true"
1117
1134
  export AGENTICDOME_FOUNDRY_REQUIRE_OUTPUT_SANITIZATION_IN_PROD="true"
1118
1135
 
1119
- # For distributed delegated execution:
1120
- export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
1121
- export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:foundry:handoff"
1122
- export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-kms"
1136
+ # Optional only when delegated execution crosses processes/workers/pods:
1137
+ # export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
1138
+ # export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:foundry:handoff"
1139
+ # export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-kms"
1123
1140
  ```
1124
1141
 
1125
1142
  **Attach middleware, then secure the run boundary:**
@@ -1190,7 +1207,10 @@ def create_refund(ctx, args):
1190
1207
  return {"refund_id": "rfnd_123", "status": "created"}
1191
1208
  ```
1192
1209
 
1193
- **Delegated Foundry tool execution** — the authorization can store a decision token locally or in Redis; the specialist side consumes and verifies it before executing:
1210
+ **Delegated Foundry tool execution** — authorization stores decision state in
1211
+ memory by default. Configure the optional Redis store only when the specialist
1212
+ executes in another process, worker, or pod; the specialist consumes and
1213
+ verifies the decision before executing:
1194
1214
 
1195
1215
  ```python
1196
1216
  await firewall.authorize_manager_handoff(
@@ -1569,7 +1589,8 @@ firewall.pre_hook(
1569
1589
  )
1570
1590
  ```
1571
1591
 
1572
- The specialist side verifies a token passed in args or recovers it from Redis/in-memory storage; stored tokens are consumed once:
1592
+ The specialist side verifies a token passed in args or recovers it from the
1593
+ configured in-process or optional Redis store; stored tokens are consumed once:
1573
1594
 
1574
1595
  ```python
1575
1596
  firewall.pre_hook(
@@ -1621,7 +1642,7 @@ export AGENTICDOME_AGNO_OTEL_ENABLED="true"
1621
1642
  # export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-your-secret-manager"
1622
1643
  ```
1623
1644
 
1624
- Notes: environment configuration alone does not attach AgenticDome — call `attach_firewall(agent_or_team)`, register `create_hook_bundle()`, use the middleware/plugin helper, or assign `cybersec_pre_hook`, `cybersec_post_hook`, and `cybersec_tool_hook` directly. Hosted/remote tools can only be protected at the local request/response boundary. For production teams and AgentOS deployments, configure Redis so delegation tokens are available across workers and pods, and use stable `session_id`/`run_id`/`trace_id` values.
1645
+ Notes: environment configuration alone does not attach AgenticDome — call `attach_firewall(agent_or_team)`, register `create_hook_bundle()`, use the middleware/plugin helper, or assign `cybersec_pre_hook`, `cybersec_post_hook`, and `cybersec_tool_hook` directly. Hosted/remote tools can only be protected at the local request/response boundary. Use stable `session_id`/`run_id`/`trace_id` values. Configure the optional Redis store only when delegation authorization and execution cross workers or pods.
1625
1646
 
1626
1647
  Official references: [Agno SDK overview](https://docs.agno.com/features/sdk) · [Agent reference](https://docs.agno.com/reference/agents/agent)
1627
1648
 
@@ -2008,7 +2029,9 @@ result = await secure_refund(
2008
2029
  )
2009
2030
  ```
2010
2031
 
2011
- **Multi-agent delegation** — Redis is recommended when authorization and execution can happen in different workers or pods:
2032
+ **Multi-agent delegation** — the in-process store is sufficient when
2033
+ authorization and execution stay in one process. Configure Redis only when the
2034
+ one-time delegation state must cross workers or pods:
2012
2035
 
2013
2036
  ```python
2014
2037
  record = await firewall.authorize_manager_handoff(
@@ -2416,9 +2439,16 @@ The middleware supports configurable fail behavior:
2416
2439
  - **Fail closed** (`AGENTICDOME_FAIL_CLOSED="true"`): block execution if security checks fail or the AgenticDome API is unavailable. **Use this in production.**
2417
2440
  - **Fail open** (`AGENTICDOME_FAIL_CLOSED="false"`): allow execution for development or non-critical environments. Do not use in production unless you have compensating controls.
2418
2441
 
2419
- ### Redis token store for production clusters
2442
+ ### Optional Redis for cross-process delegation
2443
+
2444
+ Most customers do not need to install or configure Redis. Prompt screening,
2445
+ tool authorization, MCP checks, output review, and calls to an assigned runtime
2446
+ sidecar do not require customer-managed Redis. The Python adapters use an
2447
+ in-process token store by default.
2420
2448
 
2421
- In-memory token storage suits local development and single-process workers. For horizontally scaled deployments, use Redis so manager handoff tokens are shared across workers:
2449
+ Use Redis only when manager-to-specialist delegation is authorised in one
2450
+ application process, worker, or pod and the one-time handoff state must be
2451
+ consumed in another:
2422
2452
 
2423
2453
  ```bash
2424
2454
  pip install "agenticdome-python-sdk[redis]"
@@ -2427,7 +2457,12 @@ export AGENTICDOME_REDIS_URL="redis://redis.example.internal:6379/0"
2427
2457
  export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:runtime:handoff"
2428
2458
  ```
2429
2459
 
2430
- The SDK provides integrity-protected, one-time delegation state for supported shared-store deployments. Configure `AGENTICDOME_TOKEN_HMAC_SECRET` from a secret manager and let the SDK create and consume these records; applications should not construct or modify their internal representation.
2460
+ This is the customer application's shared token store; it is not the Redis
2461
+ service operated behind an AgenticDome-managed sidecar. The SDK provides
2462
+ integrity-protected, one-time delegation state for supported shared-store
2463
+ deployments. Configure `AGENTICDOME_TOKEN_HMAC_SECRET` from a secret manager and
2464
+ let the SDK create and consume these records; applications should not construct
2465
+ or modify their internal representation.
2431
2466
 
2432
2467
  ### Production checklist
2433
2468
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.15
3
+ Version: 1.2.16
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-Expression: Apache-2.0
@@ -32,20 +32,20 @@ License-File: NOTICE
32
32
  Requires-Dist: requests>=2.31.0
33
33
  Requires-Dist: urllib3>=2.0.0
34
34
  Provides-Extra: crewai
35
- Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "crewai"
35
+ Requires-Dist: crewai<=1.15.15,>=1.15.5; extra == "crewai"
36
36
  Provides-Extra: redis
37
37
  Requires-Dist: redis>=4.5.0; extra == "redis"
38
38
  Provides-Extra: pop
39
39
  Requires-Dist: cryptography>=42.0.0; extra == "pop"
40
40
  Provides-Extra: pydanticai
41
- Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydanticai"
41
+ Requires-Dist: pydantic-ai<=2.28.0,>=2.16.0; extra == "pydanticai"
42
42
  Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
43
43
  Provides-Extra: pydantic
44
- Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydantic"
44
+ Requires-Dist: pydantic-ai<=2.28.0,>=2.16.0; extra == "pydantic"
45
45
  Requires-Dist: anyio>=4.0.0; extra == "pydantic"
46
46
  Provides-Extra: langgraph
47
- Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "langgraph"
48
- Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "langgraph"
47
+ Requires-Dist: langgraph<=1.2.11,>=1.2.9; extra == "langgraph"
48
+ Requires-Dist: langchain-core<=1.5.4,>=1.5.0; extra == "langgraph"
49
49
  Requires-Dist: langchain-openai==1.3.5; extra == "langgraph"
50
50
  Requires-Dist: anyio>=4.0.0; extra == "langgraph"
51
51
  Provides-Extra: microsoft
@@ -63,9 +63,9 @@ Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "openai-agents"
63
63
  Provides-Extra: mcp
64
64
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
65
65
  Provides-Extra: bedrock
66
- Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "bedrock"
66
+ Requires-Dist: boto3<=1.43.69,>=1.43.54; extra == "bedrock"
67
67
  Provides-Extra: aws-bedrock
68
- Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "aws-bedrock"
68
+ Requires-Dist: boto3<=1.43.69,>=1.43.54; extra == "aws-bedrock"
69
69
  Provides-Extra: llamaindex
70
70
  Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
71
71
  Provides-Extra: llama-index
@@ -75,19 +75,19 @@ Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "google-adk"
75
75
  Provides-Extra: adk
76
76
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "adk"
77
77
  Provides-Extra: claude
78
- Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude"
78
+ Requires-Dist: claude-agent-sdk<=0.2.136,>=0.2.126; extra == "claude"
79
79
  Provides-Extra: claude-agent-sdk
80
- Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude-agent-sdk"
80
+ Requires-Dist: claude-agent-sdk<=0.2.136,>=0.2.126; extra == "claude-agent-sdk"
81
81
  Provides-Extra: smolagents
82
82
  Requires-Dist: smolagents==1.26.0; extra == "smolagents"
83
83
  Provides-Extra: all
84
- Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "all"
84
+ Requires-Dist: crewai<=1.15.15,>=1.15.5; extra == "all"
85
85
  Requires-Dist: redis>=4.5.0; extra == "all"
86
86
  Requires-Dist: cryptography>=42.0.0; extra == "all"
87
- Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "all"
87
+ Requires-Dist: pydantic-ai<=2.28.0,>=2.16.0; extra == "all"
88
88
  Requires-Dist: anyio>=4.0.0; extra == "all"
89
- Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "all"
90
- Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "all"
89
+ Requires-Dist: langgraph<=1.2.11,>=1.2.9; extra == "all"
90
+ Requires-Dist: langchain-core<=1.5.4,>=1.5.0; extra == "all"
91
91
  Requires-Dist: langchain-openai==1.3.5; extra == "all"
92
92
  Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
93
93
  Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "all"
@@ -95,10 +95,10 @@ Requires-Dist: azure-ai-projects<=2.4.0,>=2.3.0; extra == "all"
95
95
  Requires-Dist: azure-identity==1.25.3; extra == "all"
96
96
  Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "all"
97
97
  Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
98
- Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "all"
98
+ Requires-Dist: boto3<=1.43.69,>=1.43.54; extra == "all"
99
99
  Requires-Dist: llama-index==0.14.23; extra == "all"
100
100
  Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "all"
101
- Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "all"
101
+ Requires-Dist: claude-agent-sdk<=0.2.136,>=0.2.126; extra == "all"
102
102
  Requires-Dist: smolagents==1.26.0; extra == "all"
103
103
  Provides-Extra: dev
104
104
  Requires-Dist: pytest>=8.0.0; extra == "dev"
@@ -266,6 +266,20 @@ Customer application |
266
266
 
267
267
  The SDK must be attached in application code; setting environment variables alone does not intercept a framework. The assigned sidecar authenticates the tenant and evaluates live requests. Tools still execute in the customer's environment or selected provider unless a separate execution service has been deliberately configured.
268
268
 
269
+ ### Where the assigned runtime runs
270
+
271
+ - **Managed service:** AgenticDome assigns the tenant a managed sidecar in the
272
+ selected supported geographic region, subject to availability and the
273
+ customer's plan or contract.
274
+ - **Sovereign deployment:** the runtime is deployed within the contracted
275
+ customer-controlled boundary, such as a dedicated VPC, customer cloud, or
276
+ on-premises environment.
277
+
278
+ The SDK does not choose or change runtime placement; it connects to the
279
+ tenant-specific API base supplied during onboarding. See
280
+ [Runtime location and Redis responsibilities](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/runtime-deployment.md) for
281
+ the deployment boundary and customer responsibilities.
282
+
269
283
  ### Who does what
270
284
 
271
285
  | Persona / component | Responsibilities | Commercial model |
@@ -372,7 +386,7 @@ pip install agenticdome-python-sdk
372
386
  | LlamaIndex | `pip install "agenticdome-python-sdk[llamaindex]"` |
373
387
  | AWS Bedrock / Bedrock Agents | `pip install "agenticdome-python-sdk[bedrock]"` |
374
388
  | MCP host / gateway | `pip install "agenticdome-python-sdk[mcp]"` |
375
- | Redis token storage | `pip install "agenticdome-python-sdk[redis]"` |
389
+ | Optional cross-process delegation store | `pip install "agenticdome-python-sdk[redis]"` |
376
390
  | Proof-of-possession helpers | `pip install "agenticdome-python-sdk[pop]"` |
377
391
  | All optional integrations | `pip install "agenticdome-python-sdk[all]"` |
378
392
 
@@ -426,7 +440,10 @@ export AGENTICDOME_REQUIRE_TOKEN="true"
426
440
  export AGENTICDOME_REPORT_INCIDENTS="true"
427
441
  ```
428
442
 
429
- For distributed multi-worker deployments, add Redis so delegation tokens move across workers:
443
+ Redis is **not required for normal SDK policy calls** or when using an assigned
444
+ managed sidecar. Add customer-managed Redis only when manager-to-specialist
445
+ delegation is authorised in one application process, worker, or pod and its
446
+ one-time handoff state must be consumed in another:
430
447
 
431
448
  ```bash
432
449
  export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
@@ -474,8 +491,8 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
474
491
  | `AGENTICDOME_REQUIRE_SESSION_ID` | boolean | framework-specific | Requires explicit session ID for strict audit mapping. |
475
492
  | `AGENTICDOME_DEFAULT_TOOL_PLATFORM` | string | `unknown` / `python` | Fallback platform for tools. |
476
493
  | `AGENTICDOME_HANDOFF_TOKEN_TTL_S` | integer | `900` | Delegation token TTL in seconds. |
477
- | `AGENTICDOME_REDIS_URL` | string | empty | Optional Redis connection URL for distributed token storage. |
478
- | `AGENTICDOME_REDIS_KEY_PREFIX` | string | framework-specific | Redis key prefix. |
494
+ | `AGENTICDOME_REDIS_URL` | string | empty | Optional customer-application Redis URL, needed only when one-time delegation state must cross processes, workers, or pods. It is unrelated to the managed sidecar's internal backing services. |
495
+ | `AGENTICDOME_REDIS_KEY_PREFIX` | string | framework-specific | Optional key prefix for the customer application's cross-process delegation store. |
479
496
  | `AGENTICDOME_TOKEN_HMAC_SECRET` | string | empty | Optional secret-manager value used by the SDK to protect shared delegation state. Applications should not inspect or construct that state. |
480
497
  | `AGENTICDOME_PRODUCTION_MODE` | boolean | `false` | Enables production hardening such as stable session ID enforcement. |
481
498
  | `AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD` | boolean | `true` | Requires a stable session/run/trace ID when production mode is enabled. |
@@ -1228,10 +1245,10 @@ export AGENTICDOME_PRODUCTION_MODE="true"
1228
1245
  export AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD="true"
1229
1246
  export AGENTICDOME_FOUNDRY_REQUIRE_OUTPUT_SANITIZATION_IN_PROD="true"
1230
1247
 
1231
- # For distributed delegated execution:
1232
- export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
1233
- export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:foundry:handoff"
1234
- export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-kms"
1248
+ # Optional only when delegated execution crosses processes/workers/pods:
1249
+ # export AGENTICDOME_REDIS_URL="redis://redis.internal:6379/0"
1250
+ # export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:foundry:handoff"
1251
+ # export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-kms"
1235
1252
  ```
1236
1253
 
1237
1254
  **Attach middleware, then secure the run boundary:**
@@ -1302,7 +1319,10 @@ def create_refund(ctx, args):
1302
1319
  return {"refund_id": "rfnd_123", "status": "created"}
1303
1320
  ```
1304
1321
 
1305
- **Delegated Foundry tool execution** — the authorization can store a decision token locally or in Redis; the specialist side consumes and verifies it before executing:
1322
+ **Delegated Foundry tool execution** — authorization stores decision state in
1323
+ memory by default. Configure the optional Redis store only when the specialist
1324
+ executes in another process, worker, or pod; the specialist consumes and
1325
+ verifies the decision before executing:
1306
1326
 
1307
1327
  ```python
1308
1328
  await firewall.authorize_manager_handoff(
@@ -1681,7 +1701,8 @@ firewall.pre_hook(
1681
1701
  )
1682
1702
  ```
1683
1703
 
1684
- The specialist side verifies a token passed in args or recovers it from Redis/in-memory storage; stored tokens are consumed once:
1704
+ The specialist side verifies a token passed in args or recovers it from the
1705
+ configured in-process or optional Redis store; stored tokens are consumed once:
1685
1706
 
1686
1707
  ```python
1687
1708
  firewall.pre_hook(
@@ -1733,7 +1754,7 @@ export AGENTICDOME_AGNO_OTEL_ENABLED="true"
1733
1754
  # export AGENTICDOME_TOKEN_HMAC_SECRET="replace-with-secret-from-your-secret-manager"
1734
1755
  ```
1735
1756
 
1736
- Notes: environment configuration alone does not attach AgenticDome — call `attach_firewall(agent_or_team)`, register `create_hook_bundle()`, use the middleware/plugin helper, or assign `cybersec_pre_hook`, `cybersec_post_hook`, and `cybersec_tool_hook` directly. Hosted/remote tools can only be protected at the local request/response boundary. For production teams and AgentOS deployments, configure Redis so delegation tokens are available across workers and pods, and use stable `session_id`/`run_id`/`trace_id` values.
1757
+ Notes: environment configuration alone does not attach AgenticDome — call `attach_firewall(agent_or_team)`, register `create_hook_bundle()`, use the middleware/plugin helper, or assign `cybersec_pre_hook`, `cybersec_post_hook`, and `cybersec_tool_hook` directly. Hosted/remote tools can only be protected at the local request/response boundary. Use stable `session_id`/`run_id`/`trace_id` values. Configure the optional Redis store only when delegation authorization and execution cross workers or pods.
1737
1758
 
1738
1759
  Official references: [Agno SDK overview](https://docs.agno.com/features/sdk) · [Agent reference](https://docs.agno.com/reference/agents/agent)
1739
1760
 
@@ -2120,7 +2141,9 @@ result = await secure_refund(
2120
2141
  )
2121
2142
  ```
2122
2143
 
2123
- **Multi-agent delegation** — Redis is recommended when authorization and execution can happen in different workers or pods:
2144
+ **Multi-agent delegation** — the in-process store is sufficient when
2145
+ authorization and execution stay in one process. Configure Redis only when the
2146
+ one-time delegation state must cross workers or pods:
2124
2147
 
2125
2148
  ```python
2126
2149
  record = await firewall.authorize_manager_handoff(
@@ -2528,9 +2551,16 @@ The middleware supports configurable fail behavior:
2528
2551
  - **Fail closed** (`AGENTICDOME_FAIL_CLOSED="true"`): block execution if security checks fail or the AgenticDome API is unavailable. **Use this in production.**
2529
2552
  - **Fail open** (`AGENTICDOME_FAIL_CLOSED="false"`): allow execution for development or non-critical environments. Do not use in production unless you have compensating controls.
2530
2553
 
2531
- ### Redis token store for production clusters
2554
+ ### Optional Redis for cross-process delegation
2555
+
2556
+ Most customers do not need to install or configure Redis. Prompt screening,
2557
+ tool authorization, MCP checks, output review, and calls to an assigned runtime
2558
+ sidecar do not require customer-managed Redis. The Python adapters use an
2559
+ in-process token store by default.
2532
2560
 
2533
- In-memory token storage suits local development and single-process workers. For horizontally scaled deployments, use Redis so manager handoff tokens are shared across workers:
2561
+ Use Redis only when manager-to-specialist delegation is authorised in one
2562
+ application process, worker, or pod and the one-time handoff state must be
2563
+ consumed in another:
2534
2564
 
2535
2565
  ```bash
2536
2566
  pip install "agenticdome-python-sdk[redis]"
@@ -2539,7 +2569,12 @@ export AGENTICDOME_REDIS_URL="redis://redis.example.internal:6379/0"
2539
2569
  export AGENTICDOME_REDIS_KEY_PREFIX="AgenticDome:runtime:handoff"
2540
2570
  ```
2541
2571
 
2542
- The SDK provides integrity-protected, one-time delegation state for supported shared-store deployments. Configure `AGENTICDOME_TOKEN_HMAC_SECRET` from a secret manager and let the SDK create and consume these records; applications should not construct or modify their internal representation.
2572
+ This is the customer application's shared token store; it is not the Redis
2573
+ service operated behind an AgenticDome-managed sidecar. The SDK provides
2574
+ integrity-protected, one-time delegation state for supported shared-store
2575
+ deployments. Configure `AGENTICDOME_TOKEN_HMAC_SECRET` from a secret manager and
2576
+ let the SDK create and consume these records; applications should not construct
2577
+ or modify their internal representation.
2543
2578
 
2544
2579
  ### Production checklist
2545
2580
 
@@ -36,6 +36,7 @@ agenticdome_sdk/simulation.py
36
36
  agenticdome_sdk/smolagents.py
37
37
  docs/mcp-integration.md
38
38
  docs/performance-evidence.md
39
+ docs/runtime-deployment.md
39
40
  docs/frameworks/README.md
40
41
  docs/frameworks/agno.md
41
42
  docs/frameworks/autogen.md