agenticdome-python-sdk 1.2.29__tar.gz → 1.2.30__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 (93) hide show
  1. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/PKG-INFO +8 -8
  2. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_python_sdk.egg-info/PKG-INFO +8 -8
  3. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_python_sdk.egg-info/requires.txt +7 -7
  4. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/catalog_snapshot.json +6 -6
  5. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/client.py +25 -7
  6. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/connect.py +8 -0
  7. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/hook_catalog.py +8 -8
  8. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/onboarding_cli.py +66 -3
  9. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/pyproject.toml +8 -8
  10. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/CONTRIBUTING.md +0 -0
  11. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/LICENSE +0 -0
  12. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/MANIFEST.in +0 -0
  13. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/NOTICE +0 -0
  14. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/README.md +0 -0
  15. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/SECURITY.md +0 -0
  16. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_python_sdk.egg-info/SOURCES.txt +0 -0
  17. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  18. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
  19. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  20. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/__init__.py +0 -0
  21. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/_framework_firewall.py +0 -0
  22. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/_mode.py +0 -0
  23. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/agno.py +0 -0
  24. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/attestation.py +0 -0
  25. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/autogen.py +0 -0
  26. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/aws_bedrock.py +0 -0
  27. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/claude.py +0 -0
  28. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/copilot_ir.py +0 -0
  29. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/copilot_ir_collector.cjs +0 -0
  30. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/crewai.py +0 -0
  31. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/demo.py +0 -0
  32. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/google_adk.py +0 -0
  33. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/identity.py +0 -0
  34. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/langgraph.py +0 -0
  35. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/lifecycle.py +0 -0
  36. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/llamaindex.py +0 -0
  37. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/mcp_host.py +0 -0
  38. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/mcp_http_gateway.py +0 -0
  39. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/mcp_rehearsal_server.py +0 -0
  40. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/mcp_verification.py +0 -0
  41. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  42. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  43. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/openai_agents.py +0 -0
  44. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/outcomes.py +0 -0
  45. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/proof.py +0 -0
  46. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/pydantic.py +0 -0
  47. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/simulation.py +0 -0
  48. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/agenticdome_sdk/smolagents.py +0 -0
  49. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/customer-onboarding.md +0 -0
  50. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/README.md +0 -0
  51. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/agno.md +0 -0
  52. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/autogen.md +0 -0
  53. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/aws-bedrock.md +0 -0
  54. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/claude-agent-sdk.md +0 -0
  55. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/crewai.md +0 -0
  56. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/custom-python.md +0 -0
  57. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/google-adk.md +0 -0
  58. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/langgraph.md +0 -0
  59. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/llamaindex.md +0 -0
  60. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/microsoft-agent-framework.md +0 -0
  61. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/microsoft-ai-foundry.md +0 -0
  62. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/openai-agents.md +0 -0
  63. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/pydanticai.md +0 -0
  64. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/frameworks/smolagents.md +0 -0
  65. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/mcp-integration.md +0 -0
  66. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/performance-evidence.md +0 -0
  67. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/docs/runtime-deployment.md +0 -0
  68. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/PRODUCTION_INTEGRATION.md +0 -0
  69. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/README.md +0 -0
  70. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/attack_demo.py +0 -0
  71. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/crewai_agenticdome_firewall.py +0 -0
  72. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/README.md +0 -0
  73. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/_shared.py +0 -0
  74. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/agno.py +0 -0
  75. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/autogen.py +0 -0
  76. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/aws_bedrock.py +0 -0
  77. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/claude_agent_sdk.py +0 -0
  78. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/crewai.py +0 -0
  79. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/custom_python.py +0 -0
  80. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/google_adk.py +0 -0
  81. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/langgraph.py +0 -0
  82. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/llamaindex.py +0 -0
  83. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/mcp.py +0 -0
  84. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/microsoft_agent_framework.py +0 -0
  85. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/microsoft_ai_foundry.py +0 -0
  86. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/openai_agents.py +0 -0
  87. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/pydanticai.py +0 -0
  88. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/frameworks/smolagents.py +0 -0
  89. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/langgraph_agenticdome_firewall.py +0 -0
  90. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/local_simulation_gallery.py +0 -0
  91. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/examples/mcp_gateway_action_firewall.py +0 -0
  92. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/setup.cfg +0 -0
  93. {agenticdome_python_sdk-1.2.29 → agenticdome_python_sdk-1.2.30}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.29
3
+ Version: 1.2.30
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
@@ -33,7 +33,7 @@ Requires-Dist: requests>=2.31.0
33
33
  Requires-Dist: urllib3>=2.0.0
34
34
  Requires-Dist: cryptography>=42.0.0
35
35
  Provides-Extra: crewai
36
- Requires-Dist: crewai<=1.15.20,>=1.15.5; extra == "crewai"
36
+ Requires-Dist: crewai<=1.15.21,>=1.15.5; extra == "crewai"
37
37
  Provides-Extra: redis
38
38
  Requires-Dist: redis>=4.5.0; extra == "redis"
39
39
  Provides-Extra: pop
@@ -60,13 +60,13 @@ Requires-Dist: azure-identity==1.25.3; extra == "foundry"
60
60
  Provides-Extra: agno
61
61
  Requires-Dist: agno<=3.0.9,>=2.8.0; extra == "agno"
62
62
  Provides-Extra: openai-agents
63
- Requires-Dist: openai-agents<=0.22.1,>=0.18.3; extra == "openai-agents"
63
+ Requires-Dist: openai-agents<=0.22.2,>=0.18.3; extra == "openai-agents"
64
64
  Provides-Extra: mcp
65
65
  Requires-Dist: mcp<=2.2.0,>=1.26.0; extra == "mcp"
66
66
  Provides-Extra: bedrock
67
- Requires-Dist: boto3<=1.43.90,>=1.43.54; extra == "bedrock"
67
+ Requires-Dist: boto3<=1.43.91,>=1.43.54; extra == "bedrock"
68
68
  Provides-Extra: aws-bedrock
69
- Requires-Dist: boto3<=1.43.90,>=1.43.54; extra == "aws-bedrock"
69
+ Requires-Dist: boto3<=1.43.91,>=1.43.54; extra == "aws-bedrock"
70
70
  Provides-Extra: llamaindex
71
71
  Requires-Dist: llama-index<=0.14.24,>=0.14.23; extra == "llamaindex"
72
72
  Provides-Extra: llama-index
@@ -82,7 +82,7 @@ Requires-Dist: claude-agent-sdk<=0.2.152,>=0.2.126; extra == "claude-agent-sdk"
82
82
  Provides-Extra: smolagents
83
83
  Requires-Dist: smolagents==1.26.0; extra == "smolagents"
84
84
  Provides-Extra: all
85
- Requires-Dist: crewai<=1.15.20,>=1.15.5; extra == "all"
85
+ Requires-Dist: crewai<=1.15.21,>=1.15.5; extra == "all"
86
86
  Requires-Dist: redis>=4.5.0; extra == "all"
87
87
  Requires-Dist: cryptography>=42.0.0; extra == "all"
88
88
  Requires-Dist: pydantic-ai<=2.42.0,>=2.16.0; extra == "all"
@@ -94,9 +94,9 @@ Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
94
94
  Requires-Dist: agno<=3.0.9,>=2.8.0; extra == "all"
95
95
  Requires-Dist: azure-ai-projects<=2.6.0,>=2.3.0; extra == "all"
96
96
  Requires-Dist: azure-identity==1.25.3; extra == "all"
97
- Requires-Dist: openai-agents<=0.22.1,>=0.18.3; extra == "all"
97
+ Requires-Dist: openai-agents<=0.22.2,>=0.18.3; extra == "all"
98
98
  Requires-Dist: mcp<=2.2.0,>=1.26.0; extra == "all"
99
- Requires-Dist: boto3<=1.43.90,>=1.43.54; extra == "all"
99
+ Requires-Dist: boto3<=1.43.91,>=1.43.54; extra == "all"
100
100
  Requires-Dist: llama-index<=0.14.24,>=0.14.23; extra == "all"
101
101
  Requires-Dist: google-adk<=2.8.0,>=2.5.0; extra == "all"
102
102
  Requires-Dist: claude-agent-sdk<=0.2.152,>=0.2.126; extra == "all"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.29
3
+ Version: 1.2.30
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
@@ -33,7 +33,7 @@ Requires-Dist: requests>=2.31.0
33
33
  Requires-Dist: urllib3>=2.0.0
34
34
  Requires-Dist: cryptography>=42.0.0
35
35
  Provides-Extra: crewai
36
- Requires-Dist: crewai<=1.15.20,>=1.15.5; extra == "crewai"
36
+ Requires-Dist: crewai<=1.15.21,>=1.15.5; extra == "crewai"
37
37
  Provides-Extra: redis
38
38
  Requires-Dist: redis>=4.5.0; extra == "redis"
39
39
  Provides-Extra: pop
@@ -60,13 +60,13 @@ Requires-Dist: azure-identity==1.25.3; extra == "foundry"
60
60
  Provides-Extra: agno
61
61
  Requires-Dist: agno<=3.0.9,>=2.8.0; extra == "agno"
62
62
  Provides-Extra: openai-agents
63
- Requires-Dist: openai-agents<=0.22.1,>=0.18.3; extra == "openai-agents"
63
+ Requires-Dist: openai-agents<=0.22.2,>=0.18.3; extra == "openai-agents"
64
64
  Provides-Extra: mcp
65
65
  Requires-Dist: mcp<=2.2.0,>=1.26.0; extra == "mcp"
66
66
  Provides-Extra: bedrock
67
- Requires-Dist: boto3<=1.43.90,>=1.43.54; extra == "bedrock"
67
+ Requires-Dist: boto3<=1.43.91,>=1.43.54; extra == "bedrock"
68
68
  Provides-Extra: aws-bedrock
69
- Requires-Dist: boto3<=1.43.90,>=1.43.54; extra == "aws-bedrock"
69
+ Requires-Dist: boto3<=1.43.91,>=1.43.54; extra == "aws-bedrock"
70
70
  Provides-Extra: llamaindex
71
71
  Requires-Dist: llama-index<=0.14.24,>=0.14.23; extra == "llamaindex"
72
72
  Provides-Extra: llama-index
@@ -82,7 +82,7 @@ Requires-Dist: claude-agent-sdk<=0.2.152,>=0.2.126; extra == "claude-agent-sdk"
82
82
  Provides-Extra: smolagents
83
83
  Requires-Dist: smolagents==1.26.0; extra == "smolagents"
84
84
  Provides-Extra: all
85
- Requires-Dist: crewai<=1.15.20,>=1.15.5; extra == "all"
85
+ Requires-Dist: crewai<=1.15.21,>=1.15.5; extra == "all"
86
86
  Requires-Dist: redis>=4.5.0; extra == "all"
87
87
  Requires-Dist: cryptography>=42.0.0; extra == "all"
88
88
  Requires-Dist: pydantic-ai<=2.42.0,>=2.16.0; extra == "all"
@@ -94,9 +94,9 @@ Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
94
94
  Requires-Dist: agno<=3.0.9,>=2.8.0; extra == "all"
95
95
  Requires-Dist: azure-ai-projects<=2.6.0,>=2.3.0; extra == "all"
96
96
  Requires-Dist: azure-identity==1.25.3; extra == "all"
97
- Requires-Dist: openai-agents<=0.22.1,>=0.18.3; extra == "all"
97
+ Requires-Dist: openai-agents<=0.22.2,>=0.18.3; extra == "all"
98
98
  Requires-Dist: mcp<=2.2.0,>=1.26.0; extra == "all"
99
- Requires-Dist: boto3<=1.43.90,>=1.43.54; extra == "all"
99
+ Requires-Dist: boto3<=1.43.91,>=1.43.54; extra == "all"
100
100
  Requires-Dist: llama-index<=0.14.24,>=0.14.23; extra == "all"
101
101
  Requires-Dist: google-adk<=2.8.0,>=2.5.0; extra == "all"
102
102
  Requires-Dist: claude-agent-sdk<=0.2.152,>=0.2.126; extra == "all"
@@ -9,7 +9,7 @@ google-adk<=2.8.0,>=2.5.0
9
9
  agno<=3.0.9,>=2.8.0
10
10
 
11
11
  [all]
12
- crewai<=1.15.20,>=1.15.5
12
+ crewai<=1.15.21,>=1.15.5
13
13
  redis>=4.5.0
14
14
  cryptography>=42.0.0
15
15
  pydantic-ai<=2.42.0,>=2.16.0
@@ -21,9 +21,9 @@ autogen-agentchat==0.7.5
21
21
  agno<=3.0.9,>=2.8.0
22
22
  azure-ai-projects<=2.6.0,>=2.3.0
23
23
  azure-identity==1.25.3
24
- openai-agents<=0.22.1,>=0.18.3
24
+ openai-agents<=0.22.2,>=0.18.3
25
25
  mcp<=2.2.0,>=1.26.0
26
- boto3<=1.43.90,>=1.43.54
26
+ boto3<=1.43.91,>=1.43.54
27
27
  llama-index<=0.14.24,>=0.14.23
28
28
  google-adk<=2.8.0,>=2.5.0
29
29
  claude-agent-sdk<=0.2.152,>=0.2.126
@@ -33,10 +33,10 @@ smolagents==1.26.0
33
33
  autogen-agentchat==0.7.5
34
34
 
35
35
  [aws-bedrock]
36
- boto3<=1.43.90,>=1.43.54
36
+ boto3<=1.43.91,>=1.43.54
37
37
 
38
38
  [bedrock]
39
- boto3<=1.43.90,>=1.43.54
39
+ boto3<=1.43.91,>=1.43.54
40
40
 
41
41
  [claude]
42
42
  claude-agent-sdk<=0.2.152,>=0.2.126
@@ -45,7 +45,7 @@ claude-agent-sdk<=0.2.152,>=0.2.126
45
45
  claude-agent-sdk<=0.2.152,>=0.2.126
46
46
 
47
47
  [crewai]
48
- crewai<=1.15.20,>=1.15.5
48
+ crewai<=1.15.21,>=1.15.5
49
49
 
50
50
  [dev]
51
51
  pytest>=8.0.0
@@ -86,7 +86,7 @@ mcp<=2.2.0,>=1.26.0
86
86
  autogen-agentchat==0.7.5
87
87
 
88
88
  [openai-agents]
89
- openai-agents<=0.22.1,>=0.18.3
89
+ openai-agents<=0.22.2,>=0.18.3
90
90
 
91
91
  [pop]
92
92
  cryptography>=42.0.0
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schema": "agenticdome.catalog-snapshot.v1",
3
3
  "catalog_schema": "agenticdome.hook-catalog.v1",
4
- "verified_at": "2026-09-09",
5
- "python_sdk_version": "1.2.29",
4
+ "verified_at": "2026-09-10",
5
+ "python_sdk_version": "1.2.30",
6
6
  "published_packages": {
7
7
  "agenticdome-python-sdk": {
8
8
  "registry": "pypi",
9
- "version": "1.2.29",
10
- "url": "https://pypi.org/project/agenticdome-python-sdk/1.2.29/"
9
+ "version": "1.2.30",
10
+ "url": "https://pypi.org/project/agenticdome-python-sdk/1.2.30/"
11
11
  },
12
12
  "agenticdome-sdk": {
13
13
  "registry": "npm",
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "openclaw": {
23
23
  "registry": "npm",
24
- "version": "2026.8.1",
25
- "url": "https://www.npmjs.com/package/openclaw/v/2026.8.1"
24
+ "version": "2026.9.3",
25
+ "url": "https://www.npmjs.com/package/openclaw/v/2026.9.3"
26
26
  }
27
27
  }
28
28
  }
@@ -126,8 +126,10 @@ class AgenticDomeClient:
126
126
  if execution_broker_mode is not None
127
127
  else os.getenv("AGENTICDOME_EXECUTION_BROKER_MODE", "off")
128
128
  ).strip().lower()
129
- if broker_mode not in {"off", "observe", "enforce"}:
130
- raise ValueError("execution_broker_mode must be off, observe, or enforce")
129
+ if broker_mode not in {"policy", "off", "observe", "monitor", "enforce"}:
130
+ raise ValueError("execution_broker_mode must be policy, off, monitor, observe, or enforce")
131
+ if broker_mode == "observe":
132
+ broker_mode = "monitor"
131
133
  self.execution_broker_mode = broker_mode
132
134
  self._tool_provenance: Dict[str, Dict[str, str]] = {}
133
135
  for registered_name, provenance in dict(tool_provenance or {}).items():
@@ -436,6 +438,7 @@ class AgenticDomeClient:
436
438
  extra_headers=headers,
437
439
  )
438
440
 
441
+
439
442
  # ------------------------------------------------------------------
440
443
  # SaaS Scan Endpoints
441
444
  # ------------------------------------------------------------------
@@ -717,9 +720,14 @@ class AgenticDomeClient:
717
720
  }
718
721
  )
719
722
 
723
+ resolved_broker_mode = self.execution_broker_mode if tool_name else "off"
724
+ # Offline demos have no tenant policy to resolve. Preserve that behavior,
725
+ # but never downgrade an explicit enforcement requirement to simulation.
726
+ if self.is_simulation and resolved_broker_mode != "enforce":
727
+ resolved_broker_mode = "off"
720
728
  broker_enabled = bool(
721
729
  tool_name
722
- and (self.execution_broker_mode in {"observe", "enforce"} or execution_broker is True)
730
+ and (resolved_broker_mode in {"policy", "monitor", "enforce"} or execution_broker is True)
723
731
  )
724
732
  if broker_enabled:
725
733
  boundary_id = self._normalize_optional_string(execution_boundary_id)
@@ -773,12 +781,19 @@ class AgenticDomeClient:
773
781
  payload["workload_id"] = normalized_workload
774
782
 
775
783
  path = "/tools/execution/authorize" if broker_enabled else "/tools/guardrail/validate"
784
+ if broker_enabled and resolved_broker_mode == "policy" and execution_broker is not True:
785
+ path = "/tools/execution/resolve"
776
786
  response = self._request("POST", path, json_body=payload, tenant_id=tenant_id)
777
787
  if broker_enabled:
788
+ if path == "/tools/execution/resolve":
789
+ contract = response.get("execution_broker_policy") or {}
790
+ if contract.get("schema") != "agenticdome.execution-broker-policy.v1" or contract.get("mode") not in {"off", "monitor", "enforce"}:
791
+ raise AgenticDomeError("Assigned sidecar did not return a valid Execution Broker policy contract")
792
+ resolved_broker_mode = contract["mode"]
778
793
  broker = response.get("broker") if isinstance(response.get("broker"), dict) else {}
779
794
  verified = bool(broker.get("verified")) and bool(broker.get("token_consumed"))
780
- must_enforce = self.execution_broker_mode == "enforce" or execution_broker is True
781
- if must_enforce and not verified:
795
+ must_enforce = resolved_broker_mode == "enforce" or execution_broker is True
796
+ if must_enforce and (self.is_simulation or not verified):
782
797
  raise AgenticDomeError(
783
798
  "AgenticDome execution broker did not return a verified, atomically consumed decision"
784
799
  )
@@ -1538,7 +1553,11 @@ class AgenticDomeClient:
1538
1553
  # In broker mode the official MCP adapter uses the same one-request
1539
1554
  # execution boundary as REST. This preserves immediate decision
1540
1555
  # consumption without adding a second network round trip.
1541
- if tool_name and self.execution_broker_mode in {"observe", "enforce"}:
1556
+ if (
1557
+ tool_name
1558
+ and self.execution_broker_mode in {"policy", "monitor", "enforce"}
1559
+ and (not self.is_simulation or self.execution_broker_mode == "enforce")
1560
+ ):
1542
1561
  return self.guardrail_validate(
1543
1562
  text=text,
1544
1563
  agent_id=agent_id,
@@ -1566,7 +1585,6 @@ class AgenticDomeClient:
1566
1585
  block_on_sensitive_output=block_on_sensitive_output,
1567
1586
  trusted_destination_domains=trusted_destination_domains,
1568
1587
  allowed_destination_domains=allowed_destination_domains,
1569
- execution_broker=True,
1570
1588
  tenant_id=tenant_id,
1571
1589
  )
1572
1590
 
@@ -191,6 +191,7 @@ def run_connect(root: Path, args: Any) -> Dict[str, Any]:
191
191
  if not config_path.exists():
192
192
  config_path.write_text(json.dumps({
193
193
  "schema": "agenticdome.project-config.v1", "frameworks": frameworks or ["custom-python"],
194
+ "execution_broker_mode": "policy",
194
195
  "business_purpose": "REVIEW_REQUIRED_NOT_INVENTED", "sensitive_tools": [],
195
196
  "deployment": {"preference": "managed", "region": session["runtime"].get("region") or "auto"},
196
197
  "source_upload": False,
@@ -215,10 +216,17 @@ def run_connect(root: Path, args: Any) -> Dict[str, Any]:
215
216
  if not args.repository_connection:
216
217
  raise SystemExit("--open-pr requires --repository-connection with a connection UUID from the customer portal.")
217
218
  pull_request = _open_review_pr(root, portal, session, args.repository_connection, patch_path)
219
+ effective_config = json.loads(config_path.read_text(encoding="utf-8"))
220
+ broker_setup = dict(session["runtime"].get("execution_broker") or {
221
+ "status": "readiness_not_reported",
222
+ "next_action": "Ask AgenticDome to confirm policy-aware sidecar readiness before live verification.",
223
+ })
224
+ broker_setup["sdk_mode"] = effective_config.get("execution_broker_mode", "existing_sdk_or_environment_default")
218
225
  return {
219
226
  "status": "changeset_ready", "source_upload": False, "tenant_id": session["tenant_id"],
220
227
  "session_uuid": session["session_uuid"], "workload_uuid": workload_uuid,
221
228
  "runtime_region": session["runtime"].get("region"), "frameworks": frameworks,
229
+ "execution_broker": broker_setup,
222
230
  "attachment_points": len(semantic.get("attachment_points") or []),
223
231
  "bypass_risks": len(semantic.get("bypass_risks") or []),
224
232
  "patch": str(patch_path.relative_to(root)),
@@ -39,9 +39,9 @@ CATALOG_VERIFIED_AT = str(_CATALOG_SNAPSHOT["verified_at"])
39
39
 
40
40
 
41
41
  _OPENCLAW_RUNTIME_MIN_VERSION = "2026.7.1-2"
42
- _OPENCLAW_RUNTIME_MAX_VERSION = "2026.8.1"
42
+ _OPENCLAW_RUNTIME_MAX_VERSION = "2026.9.3"
43
43
  _OPENCLAW_RUNTIME_VERSION = _OPENCLAW_RUNTIME_MAX_VERSION
44
- _OPENCLAW_NODE_RANGE = ">=22.22.3 <23 || >=24.15.0 <25 || >=25.9.0"
44
+ _OPENCLAW_NODE_RANGE = ">=24.16.0 <25 || >=26.1.0"
45
45
 
46
46
  PUBLISHED_AGENTICDOME_PACKAGES: Dict[str, Dict[str, str]] = {
47
47
  str(package): {str(key): str(value) for key, value in row.items()}
@@ -86,7 +86,7 @@ FRAMEWORK_HOOK_CATALOG: Dict[str, Dict[str, Any]] = {
86
86
  "agenticdome_sdk.integrations.crewai",
87
87
  "AgenticDomeCrewAIFirewall",
88
88
  ["attach", "secure_tool"],
89
- packages={"crewai": {"min":"1.15.5","max":"1.15.20"}},
89
+ packages={"crewai": {"min":"1.15.5","max":"1.15.21"}},
90
90
  native_modules=[
91
91
  {
92
92
  "module": "crewai.hooks",
@@ -191,7 +191,7 @@ FRAMEWORK_HOOK_CATALOG: Dict[str, Dict[str, Any]] = {
191
191
  "agenticdome_sdk.integrations.openai_agents",
192
192
  "AgenticDomeOpenAIAgentsFirewall",
193
193
  ["run_agent_securely", "wrap_tool_handler", "create_input_guardrail"],
194
- packages={"openai-agents": {"min":"0.18.3","max":"0.22.1"}},
194
+ packages={"openai-agents": {"min":"0.18.3","max":"0.22.2"}},
195
195
  native_modules=[{"module": "agents", "attrs": ["Agent", "Runner", "function_tool"]}],
196
196
  native_smoke={"module": "agenticdome_sdk.integrations.openai_agents", "call": "create_input_guardrail"},
197
197
  docs="docs/frameworks/openai-agents.md",
@@ -262,7 +262,7 @@ FRAMEWORK_HOOK_CATALOG: Dict[str, Dict[str, Any]] = {
262
262
  "agenticdome_sdk.integrations.aws_bedrock",
263
263
  "AgenticDomeAWSBedrockFirewall",
264
264
  ["converse_securely", "wrap_tool_handler", "wrap_action_group_lambda"],
265
- packages={"boto3": {"min":"1.43.54","max":"1.43.90"}},
265
+ packages={"boto3": {"min":"1.43.54","max":"1.43.91"}},
266
266
  native_modules=[{"module": "boto3", "attrs": ["client"]}],
267
267
  native_smoke={"module": "agenticdome_sdk.integrations.aws_bedrock", "call": "wrap_tool_handler"},
268
268
  docs="docs/frameworks/aws-bedrock.md",
@@ -444,18 +444,18 @@ _HARNESS_VERIFICATION: Dict[str, Dict[str, Any]] = {
444
444
  }
445
445
 
446
446
  _PACKAGE_CERTIFICATION_DATES: Dict[str, Dict[str, str]] = {
447
- "crewai": {"crewai":"2026-09-09"},
447
+ "crewai": {"crewai":"2026-09-10"},
448
448
  "pydanticai": {"pydantic-ai": "2026-09-09"},
449
449
  "langgraph": {"langgraph": "2026-08-12", "langchain-core": "2026-09-09"},
450
450
  "autogen": {"autogen-agentchat": "2026-07-26"},
451
451
  "foundry": {"azure-ai-projects": "2026-09-09", "azure-identity": "2026-07-10"},
452
- "openai-agents": {"openai-agents": "2026-09-09"},
452
+ "openai-agents": {"openai-agents": "2026-09-10"},
453
453
  "claude": {"claude-agent-sdk": "2026-09-09"},
454
454
  "smolagents": {"smolagents": "2026-07-23"},
455
455
  "agno": {"agno": "2026-09-09"},
456
456
  "google-adk": {"google-adk": "2026-08-27"},
457
457
  "llamaindex": {"llama-index": "2026-08-20"},
458
- "bedrock": {"boto3": "2026-09-09"},
458
+ "bedrock": {"boto3": "2026-09-10"},
459
459
  "mcp": {"mcp": "2026-09-09"},
460
460
  }
461
461
 
@@ -666,6 +666,10 @@ def _load_json(path: Path) -> Dict[str, Any]:
666
666
 
667
667
 
668
668
  def init_project(root: Path, args: argparse.Namespace) -> Dict[str, Any]:
669
+ target = _agenticdome_dir(root) / "config.json"
670
+ # Reassessment must not silently migrate an established integration.
671
+ if target.exists():
672
+ return _load_json(target)
669
673
  report = inspect_repository(root)
670
674
  detected = [item["key"] for item in report["frameworks"]]
671
675
  frameworks = list(dict.fromkeys(args.framework or detected or ["custom-python"]))
@@ -685,8 +689,8 @@ def init_project(root: Path, args: argparse.Namespace) -> Dict[str, Any]:
685
689
  "tenant_id_env": "AGENTICDOME_TENANT_ID",
686
690
  },
687
691
  "source_upload": False,
692
+ "execution_broker_mode": "policy",
688
693
  }
689
- target = _agenticdome_dir(root) / "config.json"
690
694
  _write_json(target, config)
691
695
  _write_json(_agenticdome_dir(root) / "inspection.json", report)
692
696
  return config
@@ -1069,6 +1073,59 @@ def _framework_hooks_markdown(plan: Dict[str, Any]) -> str:
1069
1073
  return "\n".join(lines).rstrip() + "\n"
1070
1074
 
1071
1075
 
1076
+ def _onboarding_broker_options(config: Dict[str, Any]) -> Dict[str, str]:
1077
+ # An absent value is a pre-existing integration: retain the SDK/env default.
1078
+ if "execution_broker_mode" not in config:
1079
+ return {}
1080
+ mode = config["execution_broker_mode"]
1081
+ if mode not in ("policy", "off", "monitor", "observe", "enforce"):
1082
+ raise SystemExit("Invalid execution_broker_mode in .agenticdome/config.json; use policy for tenant-controlled brokering.")
1083
+ return {"execution_broker_mode": mode}
1084
+
1085
+
1086
+ def _configure_scaffold_broker(files: Dict[str, str], config: Dict[str, Any]) -> Dict[str, str]:
1087
+ options = _onboarding_broker_options(config)
1088
+ if not options:
1089
+ return files
1090
+ mode = options["execution_broker_mode"]
1091
+ files[".env.agenticdome.example"] += (
1092
+ "\n# Load this into the APPLICATION process, not just the sidecar.\n"
1093
+ "# Policy selects Off / Monitor / Enforce; this setting does not force Enforce.\n"
1094
+ f"AGENTICDOME_EXECUTION_BROKER_MODE={mode}\n"
1095
+ )
1096
+ if "agenticdome_integration.py" in files:
1097
+ files["agenticdome_integration.py"] = files["agenticdome_integration.py"].replace(
1098
+ ' mode="live",', f' mode="live",\n execution_broker_mode="{mode}",'
1099
+ )
1100
+ for filename in ("agenticdome_integration.ts", "agenticdome_mcp_gateway.ts"):
1101
+ if filename in files:
1102
+ files[filename] = files[filename].replace(
1103
+ ' tenantId: required("AGENTICDOME_TENANT_ID"),',
1104
+ f' tenantId: required("AGENTICDOME_TENANT_ID"),\n executionBrokerMode: "{mode}",',
1105
+ )
1106
+ if "agenticdome_mcp_gateway.py" in files:
1107
+ files["agenticdome_mcp_gateway.py"] = files["agenticdome_mcp_gateway.py"].replace(
1108
+ "from agenticdome_sdk.mcp_host import AgenticDomeMCPHostFirewall",
1109
+ "from agenticdome_sdk import AgenticDomeClient\nfrom agenticdome_sdk.mcp_host import AgenticDomeMCPHostFirewall, load_config",
1110
+ ).replace(
1111
+ "firewall = AgenticDomeMCPHostFirewall()",
1112
+ 'config = load_config()\nfirewall = AgenticDomeMCPHostFirewall(config, client=AgenticDomeClient(\n'
1113
+ ' api_base=config.api_base, api_key=config.api_key, tenant_id=config.tenant_id,\n'
1114
+ f' timeout=config.timeout_s, execution_broker_mode="{mode}",\n))',
1115
+ )
1116
+ files["AGENTICDOME-INTEGRATION.md"] += (
1117
+ "\n## Policy-controlled execution\n\n"
1118
+ f"This new scaffold sets `AGENTICDOME_EXECUTION_BROKER_MODE={mode}` and configures the generated SDK clients. "
1119
+ "An example env file is not loaded automatically: load it into the application, MCP gateway or plugin process. "
1120
+ "This does not install a separate broker or force Enforce. The assigned sidecar resolves the effective tenant policy per action. "
1121
+ "AgenticDome must deploy a policy-aware sidecar and a compatible SDK before live activation. "
1122
+ "Run `agenticdome verify --live` with a Runtime / SDK key; an unsupported resolver fails closed, without silently falling back. "
1123
+ "The Integration Copilot key cannot authorize tool execution. "
1124
+ "Review and attach wrappers at actual invocation boundaries; generated files alone do not protect an application.\n"
1125
+ )
1126
+ return files
1127
+
1128
+
1072
1129
  def _scaffold_files(config: Dict[str, Any], plan: Dict[str, Any]) -> Dict[str, str]:
1073
1130
  frameworks = ", ".join(config.get("frameworks", []))
1074
1131
  wrapper = '''"""AgenticDome enforcement boundaries generated for review.
@@ -1346,7 +1403,7 @@ export function protectedMCPForwarder(forwardToUpstream: (request: MCPJsonRpcReq
1346
1403
 
1347
1404
  export type RequiredMCPContext = MCPGatewayContext;
1348
1405
  '''
1349
- return files
1406
+ return _configure_scaffold_broker(files, config)
1350
1407
 
1351
1408
 
1352
1409
  def create_scaffold(root: Path, plan: Optional[Dict[str, Any]] = None) -> Path:
@@ -1385,6 +1442,7 @@ def protect_mcp(root: Path) -> Dict[str, Any]:
1385
1442
  config_path = _agenticdome_dir(root) / "config.json"
1386
1443
  config = _load_json(config_path) if config_path.exists() else {
1387
1444
  "schema": CONFIG_SCHEMA,
1445
+ "execution_broker_mode": "policy",
1388
1446
  "frameworks": [],
1389
1447
  "business_purpose": "REVIEW_REQUIRED_NOT_INVENTED",
1390
1448
  "sensitive_tools": [],
@@ -1563,6 +1621,7 @@ def protect_openclaw(root: Path) -> Dict[str, Any]:
1563
1621
  config_path = _agenticdome_dir(root) / "config.json"
1564
1622
  config = _load_json(config_path) if config_path.exists() else {
1565
1623
  "schema": CONFIG_SCHEMA,
1624
+ "execution_broker_mode": "policy",
1566
1625
  "frameworks": [],
1567
1626
  "business_purpose": "REVIEW_REQUIRED_NOT_INVENTED",
1568
1627
  "sensitive_tools": [],
@@ -1597,7 +1656,8 @@ def protect_openclaw(root: Path) -> Dict[str, Any]:
1597
1656
  "inspection": _relative(inspection_path, root),
1598
1657
  "evidence": _relative(protection_path, root),
1599
1658
  "customer_source_modified": False,
1600
- "next_action": "Generate and review agenticdome plan with the tenant's Copilot key, then run agenticdome openclaw verify with its Runtime / SDK key.",
1659
+ "runtime_environment": {"AGENTICDOME_EXECUTION_BROKER_MODE": _onboarding_broker_options(config)["execution_broker_mode"]} if _onboarding_broker_options(config) else {},
1660
+ "next_action": "Generate and review agenticdome plan with the tenant's Copilot key. Load the reported runtime_environment in the OpenClaw process (existing settings are not changed), then run agenticdome openclaw verify with its Runtime / SDK key and a compatible sidecar.",
1601
1661
  }
1602
1662
 
1603
1663
 
@@ -1684,6 +1744,8 @@ def verify_project(root: Path, live: bool = False, run_tests: bool = False) -> T
1684
1744
  from .client import AgenticDomeClient
1685
1745
 
1686
1746
  plan = integration_plan(root)
1747
+ config_path = _agenticdome_dir(root) / "config.json"
1748
+ broker_options = _onboarding_broker_options(_load_json(config_path)) if config_path.exists() else {}
1687
1749
  required_env = ["AGENTICDOME_API_BASE", "AGENTICDOME_API_KEY", "AGENTICDOME_TENANT_ID"]
1688
1750
  missing_env = [name for name in required_env if live and not os.getenv(name, "").strip()]
1689
1751
  if missing_env:
@@ -1693,6 +1755,7 @@ def verify_project(root: Path, live: bool = False, run_tests: bool = False) -> T
1693
1755
  api_key=os.getenv("AGENTICDOME_API_KEY", ""),
1694
1756
  tenant_id=os.getenv("AGENTICDOME_TENANT_ID", ""),
1695
1757
  mode="live" if live else "local_sim",
1758
+ **broker_options,
1696
1759
  )
1697
1760
  cases = [
1698
1761
  ("allowed", "Look up the status of support case 123.", "crm.case.lookup", {"case_id": "123"}),
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agenticdome-python-sdk"
7
- version = "1.2.29"
7
+ version = "1.2.30"
8
8
  description = "Official Python SDK for AgenticDome security guardrails, DLP, tool authorization, and multi-agent delegation enforcement."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -50,7 +50,7 @@ dependencies = [
50
50
 
51
51
  [project.optional-dependencies]
52
52
  crewai = [
53
- "crewai>=1.15.5,<=1.15.20"
53
+ "crewai>=1.15.5,<=1.15.21"
54
54
  ]
55
55
  redis = [
56
56
  "redis>=4.5.0"
@@ -87,16 +87,16 @@ agno = [
87
87
  "agno>=2.8.0,<=3.0.9"
88
88
  ]
89
89
  openai-agents = [
90
- "openai-agents>=0.18.3,<=0.22.1"
90
+ "openai-agents>=0.18.3,<=0.22.2"
91
91
  ]
92
92
  mcp = [
93
93
  "mcp>=1.26.0,<=2.2.0"
94
94
  ]
95
95
  bedrock = [
96
- "boto3>=1.43.54,<=1.43.90"
96
+ "boto3>=1.43.54,<=1.43.91"
97
97
  ]
98
98
  aws-bedrock = [
99
- "boto3>=1.43.54,<=1.43.90"
99
+ "boto3>=1.43.54,<=1.43.91"
100
100
  ]
101
101
  llamaindex = [
102
102
  "llama-index>=0.14.23,<=0.14.24"
@@ -120,7 +120,7 @@ smolagents = [
120
120
  "smolagents==1.26.0"
121
121
  ]
122
122
  all = [
123
- "crewai>=1.15.5,<=1.15.20",
123
+ "crewai>=1.15.5,<=1.15.21",
124
124
  "redis>=4.5.0",
125
125
  "cryptography>=42.0.0",
126
126
  "pydantic-ai>=2.16.0,<=2.42.0",
@@ -132,9 +132,9 @@ all = [
132
132
  "agno>=2.8.0,<=3.0.9",
133
133
  "azure-ai-projects>=2.3.0,<=2.6.0",
134
134
  "azure-identity==1.25.3",
135
- "openai-agents>=0.18.3,<=0.22.1",
135
+ "openai-agents>=0.18.3,<=0.22.2",
136
136
  "mcp>=1.26.0,<=2.2.0",
137
- "boto3>=1.43.54,<=1.43.90",
137
+ "boto3>=1.43.54,<=1.43.91",
138
138
  "llama-index>=0.14.23,<=0.14.24",
139
139
  "google-adk>=2.5.0,<=2.8.0",
140
140
  "claude-agent-sdk>=0.2.126,<=0.2.152",