agenticdome-python-sdk 1.2.35__tar.gz → 1.2.37__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 (98) hide show
  1. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/PKG-INFO +74 -18
  2. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/README.md +63 -7
  3. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_python_sdk.egg-info/PKG-INFO +74 -18
  4. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_python_sdk.egg-info/SOURCES.txt +4 -0
  5. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_python_sdk.egg-info/requires.txt +10 -10
  6. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/__init__.py +5 -0
  7. agenticdome_python_sdk-1.2.37/agenticdome_sdk/action_path_proof.py +263 -0
  8. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/catalog_snapshot.json +6 -6
  9. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/client.py +6 -0
  10. agenticdome_python_sdk-1.2.37/agenticdome_sdk/existing_integration.py +250 -0
  11. agenticdome_python_sdk-1.2.37/agenticdome_sdk/framework_edits.py +448 -0
  12. agenticdome_python_sdk-1.2.37/agenticdome_sdk/generic_python.py +149 -0
  13. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/guided_integration.py +226 -20
  14. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/hook_catalog.py +9 -9
  15. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/mcp_host.py +177 -91
  16. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/mcp_http_gateway.py +9 -10
  17. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/mcp_verification.py +5 -2
  18. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/onboarding_cli.py +382 -16
  19. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/openai_agents.py +7 -2
  20. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/customer-onboarding.md +105 -7
  21. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/custom-python.md +24 -0
  22. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/mcp-integration.md +68 -13
  23. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/mcp_gateway_action_firewall.py +2 -2
  24. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/pyproject.toml +11 -11
  25. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/CONTRIBUTING.md +0 -0
  26. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/LICENSE +0 -0
  27. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/MANIFEST.in +0 -0
  28. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/NOTICE +0 -0
  29. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/SECURITY.md +0 -0
  30. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  31. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
  32. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  33. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/_framework_firewall.py +0 -0
  34. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/_mode.py +0 -0
  35. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/agno.py +0 -0
  36. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/attestation.py +0 -0
  37. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/autogen.py +0 -0
  38. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/aws_bedrock.py +0 -0
  39. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/claude.py +0 -0
  40. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/connect.py +0 -0
  41. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/copilot_ir.py +0 -0
  42. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/copilot_ir_collector.cjs +0 -0
  43. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/crewai.py +0 -0
  44. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/demo.py +0 -0
  45. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/google_adk.py +0 -0
  46. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/identity.py +0 -0
  47. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/langgraph.py +0 -0
  48. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/lifecycle.py +0 -0
  49. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/llamaindex.py +0 -0
  50. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/mcp_rehearsal_server.py +0 -0
  51. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  52. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  53. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/outcomes.py +0 -0
  54. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/proof.py +0 -0
  55. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/pydantic.py +0 -0
  56. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/simulation.py +0 -0
  57. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/agenticdome_sdk/smolagents.py +0 -0
  58. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/README.md +0 -0
  59. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/agno.md +0 -0
  60. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/autogen.md +0 -0
  61. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/aws-bedrock.md +0 -0
  62. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/claude-agent-sdk.md +0 -0
  63. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/crewai.md +0 -0
  64. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/google-adk.md +0 -0
  65. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/langgraph.md +0 -0
  66. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/llamaindex.md +0 -0
  67. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/microsoft-agent-framework.md +0 -0
  68. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/microsoft-ai-foundry.md +0 -0
  69. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/openai-agents.md +0 -0
  70. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/pydanticai.md +0 -0
  71. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/frameworks/smolagents.md +0 -0
  72. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/performance-evidence.md +0 -0
  73. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/docs/runtime-deployment.md +0 -0
  74. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/PRODUCTION_INTEGRATION.md +0 -0
  75. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/README.md +0 -0
  76. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/attack_demo.py +0 -0
  77. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/crewai_agenticdome_firewall.py +0 -0
  78. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/README.md +0 -0
  79. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/_shared.py +0 -0
  80. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/agno.py +0 -0
  81. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/autogen.py +0 -0
  82. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/aws_bedrock.py +0 -0
  83. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/claude_agent_sdk.py +0 -0
  84. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/crewai.py +0 -0
  85. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/custom_python.py +0 -0
  86. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/google_adk.py +0 -0
  87. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/langgraph.py +0 -0
  88. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/llamaindex.py +0 -0
  89. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/mcp.py +0 -0
  90. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/microsoft_agent_framework.py +0 -0
  91. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/microsoft_ai_foundry.py +0 -0
  92. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/openai_agents.py +0 -0
  93. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/pydanticai.py +0 -0
  94. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/frameworks/smolagents.py +0 -0
  95. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/langgraph_agenticdome_firewall.py +0 -0
  96. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/examples/local_simulation_gallery.py +0 -0
  97. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/setup.cfg +0 -0
  98. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.37}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.35
3
+ Version: 1.2.37
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.22,>=1.15.5; extra == "crewai"
36
+ Requires-Dist: crewai<=1.15.23,>=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
@@ -46,7 +46,7 @@ Requires-Dist: pydantic-ai<=2.51.0,>=2.16.0; extra == "pydantic"
46
46
  Requires-Dist: anyio>=4.0.0; extra == "pydantic"
47
47
  Provides-Extra: langgraph
48
48
  Requires-Dist: langgraph<=1.2.12,>=1.2.9; extra == "langgraph"
49
- Requires-Dist: langchain-core<=1.6.5,>=1.5.0; extra == "langgraph"
49
+ Requires-Dist: langchain-core<=1.6.6,>=1.5.0; extra == "langgraph"
50
50
  Requires-Dist: langchain-openai==1.3.5; extra == "langgraph"
51
51
  Requires-Dist: anyio>=4.0.0; extra == "langgraph"
52
52
  Provides-Extra: microsoft
@@ -64,9 +64,9 @@ Requires-Dist: openai-agents<=0.22.3,>=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.103,>=1.43.54; extra == "bedrock"
67
+ Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "bedrock"
68
68
  Provides-Extra: aws-bedrock
69
- Requires-Dist: boto3<=1.43.103,>=1.43.54; extra == "aws-bedrock"
69
+ Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "aws-bedrock"
70
70
  Provides-Extra: llamaindex
71
71
  Requires-Dist: llama-index<=0.14.25,>=0.14.23; extra == "llamaindex"
72
72
  Provides-Extra: llama-index
@@ -76,19 +76,19 @@ Requires-Dist: google-adk<=2.10.0,>=2.5.0; extra == "google-adk"
76
76
  Provides-Extra: adk
77
77
  Requires-Dist: google-adk<=2.10.0,>=2.5.0; extra == "adk"
78
78
  Provides-Extra: claude
79
- Requires-Dist: claude-agent-sdk<=0.2.160,>=0.2.126; extra == "claude"
79
+ Requires-Dist: claude-agent-sdk<=0.2.162,>=0.2.126; extra == "claude"
80
80
  Provides-Extra: claude-agent-sdk
81
- Requires-Dist: claude-agent-sdk<=0.2.160,>=0.2.126; extra == "claude-agent-sdk"
81
+ Requires-Dist: claude-agent-sdk<=0.2.162,>=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.22,>=1.15.5; extra == "all"
85
+ Requires-Dist: crewai<=1.15.23,>=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.51.0,>=2.16.0; extra == "all"
89
89
  Requires-Dist: anyio>=4.0.0; extra == "all"
90
90
  Requires-Dist: langgraph<=1.2.12,>=1.2.9; extra == "all"
91
- Requires-Dist: langchain-core<=1.6.5,>=1.5.0; extra == "all"
91
+ Requires-Dist: langchain-core<=1.6.6,>=1.5.0; extra == "all"
92
92
  Requires-Dist: langchain-openai==1.3.5; extra == "all"
93
93
  Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
94
94
  Requires-Dist: agno<=3.0.11,>=2.8.0; extra == "all"
@@ -96,10 +96,10 @@ Requires-Dist: azure-ai-projects<=2.7.0,>=2.3.0; extra == "all"
96
96
  Requires-Dist: azure-identity==1.25.3; extra == "all"
97
97
  Requires-Dist: openai-agents<=0.22.3,>=0.18.3; extra == "all"
98
98
  Requires-Dist: mcp<=2.2.0,>=1.26.0; extra == "all"
99
- Requires-Dist: boto3<=1.43.103,>=1.43.54; extra == "all"
99
+ Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "all"
100
100
  Requires-Dist: llama-index<=0.14.25,>=0.14.23; extra == "all"
101
101
  Requires-Dist: google-adk<=2.10.0,>=2.5.0; extra == "all"
102
- Requires-Dist: claude-agent-sdk<=0.2.160,>=0.2.126; extra == "all"
102
+ Requires-Dist: claude-agent-sdk<=0.2.162,>=0.2.126; extra == "all"
103
103
  Requires-Dist: smolagents==1.26.0; extra == "all"
104
104
  Provides-Extra: dev
105
105
  Requires-Dist: pytest>=8.0.0; extra == "dev"
@@ -177,16 +177,60 @@ agenticdome inspect --output agenticdome-inspection.json
177
177
 
178
178
  `init` writes the secret-free inspection and local configuration. For the
179
179
  certified onboarding path, obtain the assigned sidecar and a dedicated
180
- `integration_copilot` key, run `agenticdome integrate preview`, review its
180
+ `integration_copilot` key, run `agenticdome integrate preview` and
181
+ `agenticdome integrate status`, review the saved
181
182
  local exact diff and change summary, explicitly approve a supported edit or
182
183
  attach other boundaries manually, then run
183
184
  `agenticdome verify --run-tests --output .agenticdome/verification.json`.
184
- Preview obtains the private, signed, catalog-bound semantic plan and keeps
185
+
186
+ If a coding assistant has already made and tested the application edits,
187
+ import its canonical `AgenticDome_Integration.md` in the customer portal and
188
+ run `agenticdome validate-report --report AgenticDome_Integration.md` from
189
+ that same deployable workload. Import the two generated, hash-bound JSON files
190
+ in Onboarding. This avoids repeating the guided edit plan; the Markdown counts
191
+ remain AI-reported and a real action-path test is still required before
192
+ claiming protection. See the [customer onboarding guide](docs/customer-onboarding.md).
193
+
194
+ For the Pilot path, preview obtains the private, signed, catalog-bound semantic plan and keeps
185
195
  application source on your machine. `agenticdome integrate apply` creates a
186
196
  local Git review branch but never commits, pushes or deploys. Existing-source
187
- automatic edits are currently limited to one exact certified smolagents run
188
- pattern; all other paths need manual integration. The older `agenticdome plan`
197
+ automatic edits cover unambiguous CrewAI bootstrap, PydanticAI `Agent(...)`,
198
+ LangChain `create_agent(...)`, Google ADK agent construction, Claude options,
199
+ Agno `Agent(...)`, direct LlamaIndex `FunctionTool.from_defaults(...)`, direct
200
+ OpenAI Agents `FunctionTool(...)` handlers, explicit custom-Python tool
201
+ dispatchers, and the exact smolagents run pattern.
202
+ The CLI leaves dynamic construction,
203
+ existing handwritten AgenticDome calls, MCP forwarding and other framework
204
+ paths for explicit review; a patch never proves all routes are intercepted.
205
+ The older `agenticdome plan`
189
206
  and `agenticdome scaffold` remain available as advanced review-only commands.
207
+ Preview auto-selects an application or pure-MCP review path and reports
208
+ existing Python SDK call-site candidates, including handwritten local
209
+ wrappers. Discovery uses the versioned framework hook catalog plus documented
210
+ prompt, tool, A2A/delegation, MCP and output API methods; categories may
211
+ overlap and TypeScript call sites are not parsed by this Python checker. Mixed
212
+ application/MCP workloads get a separate MCP review path.
213
+ Each preview rescans the selected workload. If code added a framework after
214
+ `init`, its certified hook contract is included in the new plan and flagged for
215
+ review without changing `.agenticdome/config.json`; a framework still in that
216
+ config but absent from the current scan is flagged for confirmation. Run
217
+ `agenticdome integrate status` for the saved next action and import a fresh
218
+ `agenticdome inspect --output agenticdome-inspection.json` after reviewing it.
219
+ These static observations do not prove interception; the CLI avoids
220
+ overlapping automatic rewrites and requires real blocked-action tests.
221
+
222
+ For one consequential tool, run your own safe integration test through the
223
+ actual application route with an `ExecutionSpy` around its test handler, then
224
+ correlate the SDK adapter call, live-mode verdict and handler invocation:
225
+
226
+ ```bash
227
+ agenticdome verify-action --tool billing.refund --expect-verdict BLOCKED --expect-executed no -- pytest -q tests/test_blocked_refund.py
228
+ ```
229
+
230
+ The test must call `spy.assert_calls(0)` (or `1` for an allowed test); see the
231
+ [real action-path test guide](docs/customer-onboarding.md#prove-one-real-action-path).
232
+ This opt-in command does not execute a business action itself, and a fixed
233
+ `agenticdome verify` probe is not a substitute for the real-path test.
190
234
 
191
235
  For an MCP client, host, gateway or server workload, use the focused path:
192
236
 
@@ -224,6 +268,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
224
268
  openclaw plugins enable agenticdome-security
225
269
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
226
270
  openclaw gateway restart
271
+ openclaw gateway status --require-rpc
227
272
  agenticdome openclaw protect
228
273
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
229
274
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -232,8 +277,11 @@ agenticdome plan
232
277
  agenticdome openclaw verify --output .agenticdome/verification.json
233
278
  ```
234
279
 
235
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
236
- AgenticDome plugin, explicit consent and the exact certified typed hooks.
280
+ `openclaw protect` checks the AgenticDome plugin, explicit consent and exact
281
+ typed hooks in the inspecting CLI process. `gateway status` checks the serving
282
+ Gateway's RPC reachability; neither proves that this Gateway ran a hook on a
283
+ customer tool call. Exercise a safe tool through the actual Gateway and inspect
284
+ the matching AgenticDome runtime decision before claiming that route is protected.
237
285
  The official `openclaw plugins install`, `enable`, `config set` and gateway
238
286
  restart commands are the actual runtime configuration change; the Python CLI
239
287
  does not apply or undo them. No application source patch is needed for native
@@ -246,7 +294,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
246
294
  `openclaw_verification` in one report. Both sections must be ready before the
247
295
  report is imported; `mcp verify` alone is not a combined-workload proof. The
248
296
  customer Control Panel separately confirms tenant binding and retained
249
- telemetry; neither command silently modifies customer source.
297
+ telemetry for its probes; neither command silently modifies customer source or
298
+ proves that every live Gateway tool route was intercepted.
250
299
 
251
300
  When `.agenticdome/inspection.json` is imported into Developer Integration,
252
301
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1582,6 +1631,13 @@ async def lookup_customer(customer_id: str) -> str:
1582
1631
  )
1583
1632
  ```
1584
1633
 
1634
+ If you construct `agents.FunctionTool` directly, its `on_invoke_tool`
1635
+ handler receives JSON text. Use `handler_args_format="json"` with
1636
+ `wrap_tool_handler` so the approved or sanitized arguments reach the original
1637
+ handler in that same format. The guided integration preview offers this edit
1638
+ only for a direct, statically named `FunctionTool` with an identifiable
1639
+ handler; other tool factories require manual review and a real-route test.
1640
+
1585
1641
  **Delegated specialist tool pattern:**
1586
1642
 
1587
1643
  ```python
@@ -64,16 +64,60 @@ agenticdome inspect --output agenticdome-inspection.json
64
64
 
65
65
  `init` writes the secret-free inspection and local configuration. For the
66
66
  certified onboarding path, obtain the assigned sidecar and a dedicated
67
- `integration_copilot` key, run `agenticdome integrate preview`, review its
67
+ `integration_copilot` key, run `agenticdome integrate preview` and
68
+ `agenticdome integrate status`, review the saved
68
69
  local exact diff and change summary, explicitly approve a supported edit or
69
70
  attach other boundaries manually, then run
70
71
  `agenticdome verify --run-tests --output .agenticdome/verification.json`.
71
- Preview obtains the private, signed, catalog-bound semantic plan and keeps
72
+
73
+ If a coding assistant has already made and tested the application edits,
74
+ import its canonical `AgenticDome_Integration.md` in the customer portal and
75
+ run `agenticdome validate-report --report AgenticDome_Integration.md` from
76
+ that same deployable workload. Import the two generated, hash-bound JSON files
77
+ in Onboarding. This avoids repeating the guided edit plan; the Markdown counts
78
+ remain AI-reported and a real action-path test is still required before
79
+ claiming protection. See the [customer onboarding guide](docs/customer-onboarding.md).
80
+
81
+ For the Pilot path, preview obtains the private, signed, catalog-bound semantic plan and keeps
72
82
  application source on your machine. `agenticdome integrate apply` creates a
73
83
  local Git review branch but never commits, pushes or deploys. Existing-source
74
- automatic edits are currently limited to one exact certified smolagents run
75
- pattern; all other paths need manual integration. The older `agenticdome plan`
84
+ automatic edits cover unambiguous CrewAI bootstrap, PydanticAI `Agent(...)`,
85
+ LangChain `create_agent(...)`, Google ADK agent construction, Claude options,
86
+ Agno `Agent(...)`, direct LlamaIndex `FunctionTool.from_defaults(...)`, direct
87
+ OpenAI Agents `FunctionTool(...)` handlers, explicit custom-Python tool
88
+ dispatchers, and the exact smolagents run pattern.
89
+ The CLI leaves dynamic construction,
90
+ existing handwritten AgenticDome calls, MCP forwarding and other framework
91
+ paths for explicit review; a patch never proves all routes are intercepted.
92
+ The older `agenticdome plan`
76
93
  and `agenticdome scaffold` remain available as advanced review-only commands.
94
+ Preview auto-selects an application or pure-MCP review path and reports
95
+ existing Python SDK call-site candidates, including handwritten local
96
+ wrappers. Discovery uses the versioned framework hook catalog plus documented
97
+ prompt, tool, A2A/delegation, MCP and output API methods; categories may
98
+ overlap and TypeScript call sites are not parsed by this Python checker. Mixed
99
+ application/MCP workloads get a separate MCP review path.
100
+ Each preview rescans the selected workload. If code added a framework after
101
+ `init`, its certified hook contract is included in the new plan and flagged for
102
+ review without changing `.agenticdome/config.json`; a framework still in that
103
+ config but absent from the current scan is flagged for confirmation. Run
104
+ `agenticdome integrate status` for the saved next action and import a fresh
105
+ `agenticdome inspect --output agenticdome-inspection.json` after reviewing it.
106
+ These static observations do not prove interception; the CLI avoids
107
+ overlapping automatic rewrites and requires real blocked-action tests.
108
+
109
+ For one consequential tool, run your own safe integration test through the
110
+ actual application route with an `ExecutionSpy` around its test handler, then
111
+ correlate the SDK adapter call, live-mode verdict and handler invocation:
112
+
113
+ ```bash
114
+ agenticdome verify-action --tool billing.refund --expect-verdict BLOCKED --expect-executed no -- pytest -q tests/test_blocked_refund.py
115
+ ```
116
+
117
+ The test must call `spy.assert_calls(0)` (or `1` for an allowed test); see the
118
+ [real action-path test guide](docs/customer-onboarding.md#prove-one-real-action-path).
119
+ This opt-in command does not execute a business action itself, and a fixed
120
+ `agenticdome verify` probe is not a substitute for the real-path test.
77
121
 
78
122
  For an MCP client, host, gateway or server workload, use the focused path:
79
123
 
@@ -111,6 +155,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
111
155
  openclaw plugins enable agenticdome-security
112
156
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
113
157
  openclaw gateway restart
158
+ openclaw gateway status --require-rpc
114
159
  agenticdome openclaw protect
115
160
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
116
161
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -119,8 +164,11 @@ agenticdome plan
119
164
  agenticdome openclaw verify --output .agenticdome/verification.json
120
165
  ```
121
166
 
122
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
123
- AgenticDome plugin, explicit consent and the exact certified typed hooks.
167
+ `openclaw protect` checks the AgenticDome plugin, explicit consent and exact
168
+ typed hooks in the inspecting CLI process. `gateway status` checks the serving
169
+ Gateway's RPC reachability; neither proves that this Gateway ran a hook on a
170
+ customer tool call. Exercise a safe tool through the actual Gateway and inspect
171
+ the matching AgenticDome runtime decision before claiming that route is protected.
124
172
  The official `openclaw plugins install`, `enable`, `config set` and gateway
125
173
  restart commands are the actual runtime configuration change; the Python CLI
126
174
  does not apply or undo them. No application source patch is needed for native
@@ -133,7 +181,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
133
181
  `openclaw_verification` in one report. Both sections must be ready before the
134
182
  report is imported; `mcp verify` alone is not a combined-workload proof. The
135
183
  customer Control Panel separately confirms tenant binding and retained
136
- telemetry; neither command silently modifies customer source.
184
+ telemetry for its probes; neither command silently modifies customer source or
185
+ proves that every live Gateway tool route was intercepted.
137
186
 
138
187
  When `.agenticdome/inspection.json` is imported into Developer Integration,
139
188
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1469,6 +1518,13 @@ async def lookup_customer(customer_id: str) -> str:
1469
1518
  )
1470
1519
  ```
1471
1520
 
1521
+ If you construct `agents.FunctionTool` directly, its `on_invoke_tool`
1522
+ handler receives JSON text. Use `handler_args_format="json"` with
1523
+ `wrap_tool_handler` so the approved or sanitized arguments reach the original
1524
+ handler in that same format. The guided integration preview offers this edit
1525
+ only for a direct, statically named `FunctionTool` with an identifiable
1526
+ handler; other tool factories require manual review and a real-route test.
1527
+
1472
1528
  **Delegated specialist tool pattern:**
1473
1529
 
1474
1530
  ```python
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.35
3
+ Version: 1.2.37
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.22,>=1.15.5; extra == "crewai"
36
+ Requires-Dist: crewai<=1.15.23,>=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
@@ -46,7 +46,7 @@ Requires-Dist: pydantic-ai<=2.51.0,>=2.16.0; extra == "pydantic"
46
46
  Requires-Dist: anyio>=4.0.0; extra == "pydantic"
47
47
  Provides-Extra: langgraph
48
48
  Requires-Dist: langgraph<=1.2.12,>=1.2.9; extra == "langgraph"
49
- Requires-Dist: langchain-core<=1.6.5,>=1.5.0; extra == "langgraph"
49
+ Requires-Dist: langchain-core<=1.6.6,>=1.5.0; extra == "langgraph"
50
50
  Requires-Dist: langchain-openai==1.3.5; extra == "langgraph"
51
51
  Requires-Dist: anyio>=4.0.0; extra == "langgraph"
52
52
  Provides-Extra: microsoft
@@ -64,9 +64,9 @@ Requires-Dist: openai-agents<=0.22.3,>=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.103,>=1.43.54; extra == "bedrock"
67
+ Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "bedrock"
68
68
  Provides-Extra: aws-bedrock
69
- Requires-Dist: boto3<=1.43.103,>=1.43.54; extra == "aws-bedrock"
69
+ Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "aws-bedrock"
70
70
  Provides-Extra: llamaindex
71
71
  Requires-Dist: llama-index<=0.14.25,>=0.14.23; extra == "llamaindex"
72
72
  Provides-Extra: llama-index
@@ -76,19 +76,19 @@ Requires-Dist: google-adk<=2.10.0,>=2.5.0; extra == "google-adk"
76
76
  Provides-Extra: adk
77
77
  Requires-Dist: google-adk<=2.10.0,>=2.5.0; extra == "adk"
78
78
  Provides-Extra: claude
79
- Requires-Dist: claude-agent-sdk<=0.2.160,>=0.2.126; extra == "claude"
79
+ Requires-Dist: claude-agent-sdk<=0.2.162,>=0.2.126; extra == "claude"
80
80
  Provides-Extra: claude-agent-sdk
81
- Requires-Dist: claude-agent-sdk<=0.2.160,>=0.2.126; extra == "claude-agent-sdk"
81
+ Requires-Dist: claude-agent-sdk<=0.2.162,>=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.22,>=1.15.5; extra == "all"
85
+ Requires-Dist: crewai<=1.15.23,>=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.51.0,>=2.16.0; extra == "all"
89
89
  Requires-Dist: anyio>=4.0.0; extra == "all"
90
90
  Requires-Dist: langgraph<=1.2.12,>=1.2.9; extra == "all"
91
- Requires-Dist: langchain-core<=1.6.5,>=1.5.0; extra == "all"
91
+ Requires-Dist: langchain-core<=1.6.6,>=1.5.0; extra == "all"
92
92
  Requires-Dist: langchain-openai==1.3.5; extra == "all"
93
93
  Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
94
94
  Requires-Dist: agno<=3.0.11,>=2.8.0; extra == "all"
@@ -96,10 +96,10 @@ Requires-Dist: azure-ai-projects<=2.7.0,>=2.3.0; extra == "all"
96
96
  Requires-Dist: azure-identity==1.25.3; extra == "all"
97
97
  Requires-Dist: openai-agents<=0.22.3,>=0.18.3; extra == "all"
98
98
  Requires-Dist: mcp<=2.2.0,>=1.26.0; extra == "all"
99
- Requires-Dist: boto3<=1.43.103,>=1.43.54; extra == "all"
99
+ Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "all"
100
100
  Requires-Dist: llama-index<=0.14.25,>=0.14.23; extra == "all"
101
101
  Requires-Dist: google-adk<=2.10.0,>=2.5.0; extra == "all"
102
- Requires-Dist: claude-agent-sdk<=0.2.160,>=0.2.126; extra == "all"
102
+ Requires-Dist: claude-agent-sdk<=0.2.162,>=0.2.126; extra == "all"
103
103
  Requires-Dist: smolagents==1.26.0; extra == "all"
104
104
  Provides-Extra: dev
105
105
  Requires-Dist: pytest>=8.0.0; extra == "dev"
@@ -177,16 +177,60 @@ agenticdome inspect --output agenticdome-inspection.json
177
177
 
178
178
  `init` writes the secret-free inspection and local configuration. For the
179
179
  certified onboarding path, obtain the assigned sidecar and a dedicated
180
- `integration_copilot` key, run `agenticdome integrate preview`, review its
180
+ `integration_copilot` key, run `agenticdome integrate preview` and
181
+ `agenticdome integrate status`, review the saved
181
182
  local exact diff and change summary, explicitly approve a supported edit or
182
183
  attach other boundaries manually, then run
183
184
  `agenticdome verify --run-tests --output .agenticdome/verification.json`.
184
- Preview obtains the private, signed, catalog-bound semantic plan and keeps
185
+
186
+ If a coding assistant has already made and tested the application edits,
187
+ import its canonical `AgenticDome_Integration.md` in the customer portal and
188
+ run `agenticdome validate-report --report AgenticDome_Integration.md` from
189
+ that same deployable workload. Import the two generated, hash-bound JSON files
190
+ in Onboarding. This avoids repeating the guided edit plan; the Markdown counts
191
+ remain AI-reported and a real action-path test is still required before
192
+ claiming protection. See the [customer onboarding guide](docs/customer-onboarding.md).
193
+
194
+ For the Pilot path, preview obtains the private, signed, catalog-bound semantic plan and keeps
185
195
  application source on your machine. `agenticdome integrate apply` creates a
186
196
  local Git review branch but never commits, pushes or deploys. Existing-source
187
- automatic edits are currently limited to one exact certified smolagents run
188
- pattern; all other paths need manual integration. The older `agenticdome plan`
197
+ automatic edits cover unambiguous CrewAI bootstrap, PydanticAI `Agent(...)`,
198
+ LangChain `create_agent(...)`, Google ADK agent construction, Claude options,
199
+ Agno `Agent(...)`, direct LlamaIndex `FunctionTool.from_defaults(...)`, direct
200
+ OpenAI Agents `FunctionTool(...)` handlers, explicit custom-Python tool
201
+ dispatchers, and the exact smolagents run pattern.
202
+ The CLI leaves dynamic construction,
203
+ existing handwritten AgenticDome calls, MCP forwarding and other framework
204
+ paths for explicit review; a patch never proves all routes are intercepted.
205
+ The older `agenticdome plan`
189
206
  and `agenticdome scaffold` remain available as advanced review-only commands.
207
+ Preview auto-selects an application or pure-MCP review path and reports
208
+ existing Python SDK call-site candidates, including handwritten local
209
+ wrappers. Discovery uses the versioned framework hook catalog plus documented
210
+ prompt, tool, A2A/delegation, MCP and output API methods; categories may
211
+ overlap and TypeScript call sites are not parsed by this Python checker. Mixed
212
+ application/MCP workloads get a separate MCP review path.
213
+ Each preview rescans the selected workload. If code added a framework after
214
+ `init`, its certified hook contract is included in the new plan and flagged for
215
+ review without changing `.agenticdome/config.json`; a framework still in that
216
+ config but absent from the current scan is flagged for confirmation. Run
217
+ `agenticdome integrate status` for the saved next action and import a fresh
218
+ `agenticdome inspect --output agenticdome-inspection.json` after reviewing it.
219
+ These static observations do not prove interception; the CLI avoids
220
+ overlapping automatic rewrites and requires real blocked-action tests.
221
+
222
+ For one consequential tool, run your own safe integration test through the
223
+ actual application route with an `ExecutionSpy` around its test handler, then
224
+ correlate the SDK adapter call, live-mode verdict and handler invocation:
225
+
226
+ ```bash
227
+ agenticdome verify-action --tool billing.refund --expect-verdict BLOCKED --expect-executed no -- pytest -q tests/test_blocked_refund.py
228
+ ```
229
+
230
+ The test must call `spy.assert_calls(0)` (or `1` for an allowed test); see the
231
+ [real action-path test guide](docs/customer-onboarding.md#prove-one-real-action-path).
232
+ This opt-in command does not execute a business action itself, and a fixed
233
+ `agenticdome verify` probe is not a substitute for the real-path test.
190
234
 
191
235
  For an MCP client, host, gateway or server workload, use the focused path:
192
236
 
@@ -224,6 +268,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
224
268
  openclaw plugins enable agenticdome-security
225
269
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
226
270
  openclaw gateway restart
271
+ openclaw gateway status --require-rpc
227
272
  agenticdome openclaw protect
228
273
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
229
274
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -232,8 +277,11 @@ agenticdome plan
232
277
  agenticdome openclaw verify --output .agenticdome/verification.json
233
278
  ```
234
279
 
235
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
236
- AgenticDome plugin, explicit consent and the exact certified typed hooks.
280
+ `openclaw protect` checks the AgenticDome plugin, explicit consent and exact
281
+ typed hooks in the inspecting CLI process. `gateway status` checks the serving
282
+ Gateway's RPC reachability; neither proves that this Gateway ran a hook on a
283
+ customer tool call. Exercise a safe tool through the actual Gateway and inspect
284
+ the matching AgenticDome runtime decision before claiming that route is protected.
237
285
  The official `openclaw plugins install`, `enable`, `config set` and gateway
238
286
  restart commands are the actual runtime configuration change; the Python CLI
239
287
  does not apply or undo them. No application source patch is needed for native
@@ -246,7 +294,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
246
294
  `openclaw_verification` in one report. Both sections must be ready before the
247
295
  report is imported; `mcp verify` alone is not a combined-workload proof. The
248
296
  customer Control Panel separately confirms tenant binding and retained
249
- telemetry; neither command silently modifies customer source.
297
+ telemetry for its probes; neither command silently modifies customer source or
298
+ proves that every live Gateway tool route was intercepted.
250
299
 
251
300
  When `.agenticdome/inspection.json` is imported into Developer Integration,
252
301
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1582,6 +1631,13 @@ async def lookup_customer(customer_id: str) -> str:
1582
1631
  )
1583
1632
  ```
1584
1633
 
1634
+ If you construct `agents.FunctionTool` directly, its `on_invoke_tool`
1635
+ handler receives JSON text. Use `handler_args_format="json"` with
1636
+ `wrap_tool_handler` so the approved or sanitized arguments reach the original
1637
+ handler in that same format. The guided integration preview offers this edit
1638
+ only for a direct, statically named `FunctionTool` with an identifiable
1639
+ handler; other tool factories require manual review and a real-route test.
1640
+
1585
1641
  **Delegated specialist tool pattern:**
1586
1642
 
1587
1643
  ```python
@@ -15,6 +15,7 @@ agenticdome_python_sdk.egg-info/top_level.txt
15
15
  agenticdome_sdk/__init__.py
16
16
  agenticdome_sdk/_framework_firewall.py
17
17
  agenticdome_sdk/_mode.py
18
+ agenticdome_sdk/action_path_proof.py
18
19
  agenticdome_sdk/agno.py
19
20
  agenticdome_sdk/attestation.py
20
21
  agenticdome_sdk/autogen.py
@@ -27,6 +28,9 @@ agenticdome_sdk/copilot_ir.py
27
28
  agenticdome_sdk/copilot_ir_collector.cjs
28
29
  agenticdome_sdk/crewai.py
29
30
  agenticdome_sdk/demo.py
31
+ agenticdome_sdk/existing_integration.py
32
+ agenticdome_sdk/framework_edits.py
33
+ agenticdome_sdk/generic_python.py
30
34
  agenticdome_sdk/google_adk.py
31
35
  agenticdome_sdk/guided_integration.py
32
36
  agenticdome_sdk/hook_catalog.py
@@ -9,13 +9,13 @@ google-adk<=2.10.0,>=2.5.0
9
9
  agno<=3.0.11,>=2.8.0
10
10
 
11
11
  [all]
12
- crewai<=1.15.22,>=1.15.5
12
+ crewai<=1.15.23,>=1.15.5
13
13
  redis>=4.5.0
14
14
  cryptography>=42.0.0
15
15
  pydantic-ai<=2.51.0,>=2.16.0
16
16
  anyio>=4.0.0
17
17
  langgraph<=1.2.12,>=1.2.9
18
- langchain-core<=1.6.5,>=1.5.0
18
+ langchain-core<=1.6.6,>=1.5.0
19
19
  langchain-openai==1.3.5
20
20
  autogen-agentchat==0.7.5
21
21
  agno<=3.0.11,>=2.8.0
@@ -23,29 +23,29 @@ azure-ai-projects<=2.7.0,>=2.3.0
23
23
  azure-identity==1.25.3
24
24
  openai-agents<=0.22.3,>=0.18.3
25
25
  mcp<=2.2.0,>=1.26.0
26
- boto3<=1.43.103,>=1.43.54
26
+ boto3<=1.43.105,>=1.43.54
27
27
  llama-index<=0.14.25,>=0.14.23
28
28
  google-adk<=2.10.0,>=2.5.0
29
- claude-agent-sdk<=0.2.160,>=0.2.126
29
+ claude-agent-sdk<=0.2.162,>=0.2.126
30
30
  smolagents==1.26.0
31
31
 
32
32
  [autogen]
33
33
  autogen-agentchat==0.7.5
34
34
 
35
35
  [aws-bedrock]
36
- boto3<=1.43.103,>=1.43.54
36
+ boto3<=1.43.105,>=1.43.54
37
37
 
38
38
  [bedrock]
39
- boto3<=1.43.103,>=1.43.54
39
+ boto3<=1.43.105,>=1.43.54
40
40
 
41
41
  [claude]
42
- claude-agent-sdk<=0.2.160,>=0.2.126
42
+ claude-agent-sdk<=0.2.162,>=0.2.126
43
43
 
44
44
  [claude-agent-sdk]
45
- claude-agent-sdk<=0.2.160,>=0.2.126
45
+ claude-agent-sdk<=0.2.162,>=0.2.126
46
46
 
47
47
  [crewai]
48
- crewai<=1.15.22,>=1.15.5
48
+ crewai<=1.15.23,>=1.15.5
49
49
 
50
50
  [dev]
51
51
  pytest>=8.0.0
@@ -67,7 +67,7 @@ google-adk<=2.10.0,>=2.5.0
67
67
 
68
68
  [langgraph]
69
69
  langgraph<=1.2.12,>=1.2.9
70
- langchain-core<=1.6.5,>=1.5.0
70
+ langchain-core<=1.6.6,>=1.5.0
71
71
  langchain-openai==1.3.5
72
72
  anyio>=4.0.0
73
73
 
@@ -3,6 +3,8 @@ from .identity import IDENTITY_CONTEXT_VERSION, canonicalize_identity_context, e
3
3
  from .proof import create_dpop_proof, generate_rsa_proof_key, jwk_thumbprint
4
4
  from ._mode import LIVE_MODE, LOCAL_SIM_MODE, is_local_sim_mode, resolve_mode
5
5
  from .lifecycle import VerifiedActionContext, VerifiedActionDenied, VerifiedActionReporter, verified_action
6
+ from .action_path_proof import ExecutionSpy
7
+ from .generic_python import AgenticDomeActionDenied, guarded_tool_executor
6
8
 
7
9
  __all__ = [
8
10
  "AgenticDomeClient",
@@ -22,4 +24,7 @@ __all__ = [
22
24
  "VerifiedActionDenied",
23
25
  "VerifiedActionReporter",
24
26
  "verified_action",
27
+ "ExecutionSpy",
28
+ "AgenticDomeActionDenied",
29
+ "guarded_tool_executor",
25
30
  ]