agenticdome-python-sdk 1.2.35__tar.gz → 1.2.36__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.36}/PKG-INFO +64 -17
  2. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/README.md +53 -6
  3. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/PKG-INFO +64 -17
  4. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/SOURCES.txt +4 -0
  5. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/requires.txt +10 -10
  6. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/__init__.py +5 -0
  7. agenticdome_python_sdk-1.2.36/agenticdome_sdk/action_path_proof.py +263 -0
  8. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/catalog_snapshot.json +4 -4
  9. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/client.py +6 -0
  10. agenticdome_python_sdk-1.2.36/agenticdome_sdk/existing_integration.py +250 -0
  11. agenticdome_python_sdk-1.2.36/agenticdome_sdk/framework_edits.py +448 -0
  12. agenticdome_python_sdk-1.2.36/agenticdome_sdk/generic_python.py +149 -0
  13. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/guided_integration.py +226 -20
  14. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/hook_catalog.py +8 -8
  15. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_host.py +177 -91
  16. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_http_gateway.py +9 -10
  17. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_verification.py +5 -2
  18. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/onboarding_cli.py +299 -16
  19. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/openai_agents.py +7 -2
  20. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/customer-onboarding.md +78 -6
  21. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/custom-python.md +24 -0
  22. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/mcp-integration.md +68 -13
  23. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/mcp_gateway_action_firewall.py +2 -2
  24. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/pyproject.toml +11 -11
  25. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/CONTRIBUTING.md +0 -0
  26. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/LICENSE +0 -0
  27. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/MANIFEST.in +0 -0
  28. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/NOTICE +0 -0
  29. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/SECURITY.md +0 -0
  30. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  31. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
  32. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  33. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/_framework_firewall.py +0 -0
  34. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/_mode.py +0 -0
  35. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/agno.py +0 -0
  36. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/attestation.py +0 -0
  37. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/autogen.py +0 -0
  38. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/aws_bedrock.py +0 -0
  39. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/claude.py +0 -0
  40. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/connect.py +0 -0
  41. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/copilot_ir.py +0 -0
  42. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/copilot_ir_collector.cjs +0 -0
  43. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/crewai.py +0 -0
  44. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/demo.py +0 -0
  45. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/google_adk.py +0 -0
  46. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/identity.py +0 -0
  47. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/langgraph.py +0 -0
  48. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/lifecycle.py +0 -0
  49. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/llamaindex.py +0 -0
  50. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_rehearsal_server.py +0 -0
  51. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  52. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  53. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/outcomes.py +0 -0
  54. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/proof.py +0 -0
  55. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/pydantic.py +0 -0
  56. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/simulation.py +0 -0
  57. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/smolagents.py +0 -0
  58. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/README.md +0 -0
  59. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/agno.md +0 -0
  60. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/autogen.md +0 -0
  61. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/aws-bedrock.md +0 -0
  62. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/claude-agent-sdk.md +0 -0
  63. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/crewai.md +0 -0
  64. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/google-adk.md +0 -0
  65. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/langgraph.md +0 -0
  66. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/llamaindex.md +0 -0
  67. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/microsoft-agent-framework.md +0 -0
  68. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/microsoft-ai-foundry.md +0 -0
  69. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/openai-agents.md +0 -0
  70. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/pydanticai.md +0 -0
  71. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/frameworks/smolagents.md +0 -0
  72. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/performance-evidence.md +0 -0
  73. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/docs/runtime-deployment.md +0 -0
  74. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/PRODUCTION_INTEGRATION.md +0 -0
  75. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/README.md +0 -0
  76. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/attack_demo.py +0 -0
  77. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/crewai_agenticdome_firewall.py +0 -0
  78. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/README.md +0 -0
  79. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/_shared.py +0 -0
  80. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/agno.py +0 -0
  81. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/autogen.py +0 -0
  82. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/aws_bedrock.py +0 -0
  83. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/claude_agent_sdk.py +0 -0
  84. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/crewai.py +0 -0
  85. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/custom_python.py +0 -0
  86. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/google_adk.py +0 -0
  87. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/langgraph.py +0 -0
  88. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/llamaindex.py +0 -0
  89. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/mcp.py +0 -0
  90. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/microsoft_agent_framework.py +0 -0
  91. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/microsoft_ai_foundry.py +0 -0
  92. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/openai_agents.py +0 -0
  93. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/pydanticai.py +0 -0
  94. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/frameworks/smolagents.py +0 -0
  95. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/langgraph_agenticdome_firewall.py +0 -0
  96. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/examples/local_simulation_gallery.py +0 -0
  97. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/setup.cfg +0 -0
  98. {agenticdome_python_sdk-1.2.35 → agenticdome_python_sdk-1.2.36}/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.36
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,51 @@ 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
185
  Preview obtains the private, signed, catalog-bound semantic plan and keeps
185
186
  application source on your machine. `agenticdome integrate apply` creates a
186
187
  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`
188
+ automatic edits cover unambiguous CrewAI bootstrap, PydanticAI `Agent(...)`,
189
+ LangChain `create_agent(...)`, Google ADK agent construction, Claude options,
190
+ Agno `Agent(...)`, direct LlamaIndex `FunctionTool.from_defaults(...)`, direct
191
+ OpenAI Agents `FunctionTool(...)` handlers, explicit custom-Python tool
192
+ dispatchers, and the exact smolagents run pattern.
193
+ The CLI leaves dynamic construction,
194
+ existing handwritten AgenticDome calls, MCP forwarding and other framework
195
+ paths for explicit review; a patch never proves all routes are intercepted.
196
+ The older `agenticdome plan`
189
197
  and `agenticdome scaffold` remain available as advanced review-only commands.
198
+ Preview auto-selects an application or pure-MCP review path and reports
199
+ existing Python SDK call-site candidates, including handwritten local
200
+ wrappers. Discovery uses the versioned framework hook catalog plus documented
201
+ prompt, tool, A2A/delegation, MCP and output API methods; categories may
202
+ overlap and TypeScript call sites are not parsed by this Python checker. Mixed
203
+ application/MCP workloads get a separate MCP review path.
204
+ Each preview rescans the selected workload. If code added a framework after
205
+ `init`, its certified hook contract is included in the new plan and flagged for
206
+ review without changing `.agenticdome/config.json`; a framework still in that
207
+ config but absent from the current scan is flagged for confirmation. Run
208
+ `agenticdome integrate status` for the saved next action and import a fresh
209
+ `agenticdome inspect --output agenticdome-inspection.json` after reviewing it.
210
+ These static observations do not prove interception; the CLI avoids
211
+ overlapping automatic rewrites and requires real blocked-action tests.
212
+
213
+ For one consequential tool, run your own safe integration test through the
214
+ actual application route with an `ExecutionSpy` around its test handler, then
215
+ correlate the SDK adapter call, live-mode verdict and handler invocation:
216
+
217
+ ```bash
218
+ agenticdome verify-action --tool billing.refund --expect-verdict BLOCKED --expect-executed no -- pytest -q tests/test_blocked_refund.py
219
+ ```
220
+
221
+ The test must call `spy.assert_calls(0)` (or `1` for an allowed test); see the
222
+ [real action-path test guide](docs/customer-onboarding.md#prove-one-real-action-path).
223
+ This opt-in command does not execute a business action itself, and a fixed
224
+ `agenticdome verify` probe is not a substitute for the real-path test.
190
225
 
191
226
  For an MCP client, host, gateway or server workload, use the focused path:
192
227
 
@@ -224,6 +259,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
224
259
  openclaw plugins enable agenticdome-security
225
260
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
226
261
  openclaw gateway restart
262
+ openclaw gateway status --require-rpc
227
263
  agenticdome openclaw protect
228
264
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
229
265
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -232,8 +268,11 @@ agenticdome plan
232
268
  agenticdome openclaw verify --output .agenticdome/verification.json
233
269
  ```
234
270
 
235
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
236
- AgenticDome plugin, explicit consent and the exact certified typed hooks.
271
+ `openclaw protect` checks the AgenticDome plugin, explicit consent and exact
272
+ typed hooks in the inspecting CLI process. `gateway status` checks the serving
273
+ Gateway's RPC reachability; neither proves that this Gateway ran a hook on a
274
+ customer tool call. Exercise a safe tool through the actual Gateway and inspect
275
+ the matching AgenticDome runtime decision before claiming that route is protected.
237
276
  The official `openclaw plugins install`, `enable`, `config set` and gateway
238
277
  restart commands are the actual runtime configuration change; the Python CLI
239
278
  does not apply or undo them. No application source patch is needed for native
@@ -246,7 +285,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
246
285
  `openclaw_verification` in one report. Both sections must be ready before the
247
286
  report is imported; `mcp verify` alone is not a combined-workload proof. The
248
287
  customer Control Panel separately confirms tenant binding and retained
249
- telemetry; neither command silently modifies customer source.
288
+ telemetry for its probes; neither command silently modifies customer source or
289
+ proves that every live Gateway tool route was intercepted.
250
290
 
251
291
  When `.agenticdome/inspection.json` is imported into Developer Integration,
252
292
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1582,6 +1622,13 @@ async def lookup_customer(customer_id: str) -> str:
1582
1622
  )
1583
1623
  ```
1584
1624
 
1625
+ If you construct `agents.FunctionTool` directly, its `on_invoke_tool`
1626
+ handler receives JSON text. Use `handler_args_format="json"` with
1627
+ `wrap_tool_handler` so the approved or sanitized arguments reach the original
1628
+ handler in that same format. The guided integration preview offers this edit
1629
+ only for a direct, statically named `FunctionTool` with an identifiable
1630
+ handler; other tool factories require manual review and a real-route test.
1631
+
1585
1632
  **Delegated specialist tool pattern:**
1586
1633
 
1587
1634
  ```python
@@ -64,16 +64,51 @@ 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
72
  Preview obtains the private, signed, catalog-bound semantic plan and keeps
72
73
  application source on your machine. `agenticdome integrate apply` creates a
73
74
  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`
75
+ automatic edits cover unambiguous CrewAI bootstrap, PydanticAI `Agent(...)`,
76
+ LangChain `create_agent(...)`, Google ADK agent construction, Claude options,
77
+ Agno `Agent(...)`, direct LlamaIndex `FunctionTool.from_defaults(...)`, direct
78
+ OpenAI Agents `FunctionTool(...)` handlers, explicit custom-Python tool
79
+ dispatchers, and the exact smolagents run pattern.
80
+ The CLI leaves dynamic construction,
81
+ existing handwritten AgenticDome calls, MCP forwarding and other framework
82
+ paths for explicit review; a patch never proves all routes are intercepted.
83
+ The older `agenticdome plan`
76
84
  and `agenticdome scaffold` remain available as advanced review-only commands.
85
+ Preview auto-selects an application or pure-MCP review path and reports
86
+ existing Python SDK call-site candidates, including handwritten local
87
+ wrappers. Discovery uses the versioned framework hook catalog plus documented
88
+ prompt, tool, A2A/delegation, MCP and output API methods; categories may
89
+ overlap and TypeScript call sites are not parsed by this Python checker. Mixed
90
+ application/MCP workloads get a separate MCP review path.
91
+ Each preview rescans the selected workload. If code added a framework after
92
+ `init`, its certified hook contract is included in the new plan and flagged for
93
+ review without changing `.agenticdome/config.json`; a framework still in that
94
+ config but absent from the current scan is flagged for confirmation. Run
95
+ `agenticdome integrate status` for the saved next action and import a fresh
96
+ `agenticdome inspect --output agenticdome-inspection.json` after reviewing it.
97
+ These static observations do not prove interception; the CLI avoids
98
+ overlapping automatic rewrites and requires real blocked-action tests.
99
+
100
+ For one consequential tool, run your own safe integration test through the
101
+ actual application route with an `ExecutionSpy` around its test handler, then
102
+ correlate the SDK adapter call, live-mode verdict and handler invocation:
103
+
104
+ ```bash
105
+ agenticdome verify-action --tool billing.refund --expect-verdict BLOCKED --expect-executed no -- pytest -q tests/test_blocked_refund.py
106
+ ```
107
+
108
+ The test must call `spy.assert_calls(0)` (or `1` for an allowed test); see the
109
+ [real action-path test guide](docs/customer-onboarding.md#prove-one-real-action-path).
110
+ This opt-in command does not execute a business action itself, and a fixed
111
+ `agenticdome verify` probe is not a substitute for the real-path test.
77
112
 
78
113
  For an MCP client, host, gateway or server workload, use the focused path:
79
114
 
@@ -111,6 +146,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
111
146
  openclaw plugins enable agenticdome-security
112
147
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
113
148
  openclaw gateway restart
149
+ openclaw gateway status --require-rpc
114
150
  agenticdome openclaw protect
115
151
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
116
152
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -119,8 +155,11 @@ agenticdome plan
119
155
  agenticdome openclaw verify --output .agenticdome/verification.json
120
156
  ```
121
157
 
122
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
123
- AgenticDome plugin, explicit consent and the exact certified typed hooks.
158
+ `openclaw protect` checks the AgenticDome plugin, explicit consent and exact
159
+ typed hooks in the inspecting CLI process. `gateway status` checks the serving
160
+ Gateway's RPC reachability; neither proves that this Gateway ran a hook on a
161
+ customer tool call. Exercise a safe tool through the actual Gateway and inspect
162
+ the matching AgenticDome runtime decision before claiming that route is protected.
124
163
  The official `openclaw plugins install`, `enable`, `config set` and gateway
125
164
  restart commands are the actual runtime configuration change; the Python CLI
126
165
  does not apply or undo them. No application source patch is needed for native
@@ -133,7 +172,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
133
172
  `openclaw_verification` in one report. Both sections must be ready before the
134
173
  report is imported; `mcp verify` alone is not a combined-workload proof. The
135
174
  customer Control Panel separately confirms tenant binding and retained
136
- telemetry; neither command silently modifies customer source.
175
+ telemetry for its probes; neither command silently modifies customer source or
176
+ proves that every live Gateway tool route was intercepted.
137
177
 
138
178
  When `.agenticdome/inspection.json` is imported into Developer Integration,
139
179
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1469,6 +1509,13 @@ async def lookup_customer(customer_id: str) -> str:
1469
1509
  )
1470
1510
  ```
1471
1511
 
1512
+ If you construct `agents.FunctionTool` directly, its `on_invoke_tool`
1513
+ handler receives JSON text. Use `handler_args_format="json"` with
1514
+ `wrap_tool_handler` so the approved or sanitized arguments reach the original
1515
+ handler in that same format. The guided integration preview offers this edit
1516
+ only for a direct, statically named `FunctionTool` with an identifiable
1517
+ handler; other tool factories require manual review and a real-route test.
1518
+
1472
1519
  **Delegated specialist tool pattern:**
1473
1520
 
1474
1521
  ```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.36
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,51 @@ 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
185
  Preview obtains the private, signed, catalog-bound semantic plan and keeps
185
186
  application source on your machine. `agenticdome integrate apply` creates a
186
187
  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`
188
+ automatic edits cover unambiguous CrewAI bootstrap, PydanticAI `Agent(...)`,
189
+ LangChain `create_agent(...)`, Google ADK agent construction, Claude options,
190
+ Agno `Agent(...)`, direct LlamaIndex `FunctionTool.from_defaults(...)`, direct
191
+ OpenAI Agents `FunctionTool(...)` handlers, explicit custom-Python tool
192
+ dispatchers, and the exact smolagents run pattern.
193
+ The CLI leaves dynamic construction,
194
+ existing handwritten AgenticDome calls, MCP forwarding and other framework
195
+ paths for explicit review; a patch never proves all routes are intercepted.
196
+ The older `agenticdome plan`
189
197
  and `agenticdome scaffold` remain available as advanced review-only commands.
198
+ Preview auto-selects an application or pure-MCP review path and reports
199
+ existing Python SDK call-site candidates, including handwritten local
200
+ wrappers. Discovery uses the versioned framework hook catalog plus documented
201
+ prompt, tool, A2A/delegation, MCP and output API methods; categories may
202
+ overlap and TypeScript call sites are not parsed by this Python checker. Mixed
203
+ application/MCP workloads get a separate MCP review path.
204
+ Each preview rescans the selected workload. If code added a framework after
205
+ `init`, its certified hook contract is included in the new plan and flagged for
206
+ review without changing `.agenticdome/config.json`; a framework still in that
207
+ config but absent from the current scan is flagged for confirmation. Run
208
+ `agenticdome integrate status` for the saved next action and import a fresh
209
+ `agenticdome inspect --output agenticdome-inspection.json` after reviewing it.
210
+ These static observations do not prove interception; the CLI avoids
211
+ overlapping automatic rewrites and requires real blocked-action tests.
212
+
213
+ For one consequential tool, run your own safe integration test through the
214
+ actual application route with an `ExecutionSpy` around its test handler, then
215
+ correlate the SDK adapter call, live-mode verdict and handler invocation:
216
+
217
+ ```bash
218
+ agenticdome verify-action --tool billing.refund --expect-verdict BLOCKED --expect-executed no -- pytest -q tests/test_blocked_refund.py
219
+ ```
220
+
221
+ The test must call `spy.assert_calls(0)` (or `1` for an allowed test); see the
222
+ [real action-path test guide](docs/customer-onboarding.md#prove-one-real-action-path).
223
+ This opt-in command does not execute a business action itself, and a fixed
224
+ `agenticdome verify` probe is not a substitute for the real-path test.
190
225
 
191
226
  For an MCP client, host, gateway or server workload, use the focused path:
192
227
 
@@ -224,6 +259,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
224
259
  openclaw plugins enable agenticdome-security
225
260
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
226
261
  openclaw gateway restart
262
+ openclaw gateway status --require-rpc
227
263
  agenticdome openclaw protect
228
264
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
229
265
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -232,8 +268,11 @@ agenticdome plan
232
268
  agenticdome openclaw verify --output .agenticdome/verification.json
233
269
  ```
234
270
 
235
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
236
- AgenticDome plugin, explicit consent and the exact certified typed hooks.
271
+ `openclaw protect` checks the AgenticDome plugin, explicit consent and exact
272
+ typed hooks in the inspecting CLI process. `gateway status` checks the serving
273
+ Gateway's RPC reachability; neither proves that this Gateway ran a hook on a
274
+ customer tool call. Exercise a safe tool through the actual Gateway and inspect
275
+ the matching AgenticDome runtime decision before claiming that route is protected.
237
276
  The official `openclaw plugins install`, `enable`, `config set` and gateway
238
277
  restart commands are the actual runtime configuration change; the Python CLI
239
278
  does not apply or undo them. No application source patch is needed for native
@@ -246,7 +285,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
246
285
  `openclaw_verification` in one report. Both sections must be ready before the
247
286
  report is imported; `mcp verify` alone is not a combined-workload proof. The
248
287
  customer Control Panel separately confirms tenant binding and retained
249
- telemetry; neither command silently modifies customer source.
288
+ telemetry for its probes; neither command silently modifies customer source or
289
+ proves that every live Gateway tool route was intercepted.
250
290
 
251
291
  When `.agenticdome/inspection.json` is imported into Developer Integration,
252
292
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1582,6 +1622,13 @@ async def lookup_customer(customer_id: str) -> str:
1582
1622
  )
1583
1623
  ```
1584
1624
 
1625
+ If you construct `agents.FunctionTool` directly, its `on_invoke_tool`
1626
+ handler receives JSON text. Use `handler_args_format="json"` with
1627
+ `wrap_tool_handler` so the approved or sanitized arguments reach the original
1628
+ handler in that same format. The guided integration preview offers this edit
1629
+ only for a direct, statically named `FunctionTool` with an identifiable
1630
+ handler; other tool factories require manual review and a real-route test.
1631
+
1585
1632
  **Delegated specialist tool pattern:**
1586
1633
 
1587
1634
  ```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
  ]