agenticdome-python-sdk 1.2.34__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.34 → agenticdome_python_sdk-1.2.36}/PKG-INFO +92 -22
  2. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/README.md +81 -11
  3. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/PKG-INFO +92 -22
  4. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/SOURCES.txt +5 -0
  5. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/requires.txt +10 -10
  6. {agenticdome_python_sdk-1.2.34 → 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.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/catalog_snapshot.json +4 -4
  9. {agenticdome_python_sdk-1.2.34 → 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.36/agenticdome_sdk/guided_integration.py +864 -0
  14. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/hook_catalog.py +8 -8
  15. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_host.py +177 -91
  16. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_http_gateway.py +9 -10
  17. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_verification.py +5 -2
  18. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/onboarding_cli.py +353 -14
  19. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/openai_agents.py +7 -2
  20. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/customer-onboarding.md +144 -23
  21. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/custom-python.md +24 -0
  22. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/mcp-integration.md +68 -13
  23. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/mcp_gateway_action_firewall.py +2 -2
  24. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/pyproject.toml +11 -11
  25. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/CONTRIBUTING.md +0 -0
  26. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/LICENSE +0 -0
  27. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/MANIFEST.in +0 -0
  28. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/NOTICE +0 -0
  29. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/SECURITY.md +0 -0
  30. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  31. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
  32. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  33. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/_framework_firewall.py +0 -0
  34. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/_mode.py +0 -0
  35. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/agno.py +0 -0
  36. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/attestation.py +0 -0
  37. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/autogen.py +0 -0
  38. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/aws_bedrock.py +0 -0
  39. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/claude.py +0 -0
  40. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/connect.py +0 -0
  41. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/copilot_ir.py +0 -0
  42. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/copilot_ir_collector.cjs +0 -0
  43. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/crewai.py +0 -0
  44. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/demo.py +0 -0
  45. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/google_adk.py +0 -0
  46. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/identity.py +0 -0
  47. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/langgraph.py +0 -0
  48. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/lifecycle.py +0 -0
  49. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/llamaindex.py +0 -0
  50. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_rehearsal_server.py +0 -0
  51. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  52. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  53. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/outcomes.py +0 -0
  54. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/proof.py +0 -0
  55. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/pydantic.py +0 -0
  56. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/simulation.py +0 -0
  57. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/smolagents.py +0 -0
  58. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/README.md +0 -0
  59. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/agno.md +0 -0
  60. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/autogen.md +0 -0
  61. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/aws-bedrock.md +0 -0
  62. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/claude-agent-sdk.md +0 -0
  63. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/crewai.md +0 -0
  64. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/google-adk.md +0 -0
  65. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/langgraph.md +0 -0
  66. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/llamaindex.md +0 -0
  67. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/microsoft-agent-framework.md +0 -0
  68. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/microsoft-ai-foundry.md +0 -0
  69. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/openai-agents.md +0 -0
  70. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/pydanticai.md +0 -0
  71. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/smolagents.md +0 -0
  72. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/performance-evidence.md +0 -0
  73. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/runtime-deployment.md +0 -0
  74. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/PRODUCTION_INTEGRATION.md +0 -0
  75. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/README.md +0 -0
  76. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/attack_demo.py +0 -0
  77. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/crewai_agenticdome_firewall.py +0 -0
  78. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/README.md +0 -0
  79. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/_shared.py +0 -0
  80. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/agno.py +0 -0
  81. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/autogen.py +0 -0
  82. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/aws_bedrock.py +0 -0
  83. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/claude_agent_sdk.py +0 -0
  84. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/crewai.py +0 -0
  85. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/custom_python.py +0 -0
  86. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/google_adk.py +0 -0
  87. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/langgraph.py +0 -0
  88. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/llamaindex.py +0 -0
  89. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/mcp.py +0 -0
  90. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/microsoft_agent_framework.py +0 -0
  91. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/microsoft_ai_foundry.py +0 -0
  92. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/openai_agents.py +0 -0
  93. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/pydanticai.py +0 -0
  94. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/smolagents.py +0 -0
  95. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/langgraph_agenticdome_firewall.py +0 -0
  96. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/local_simulation_gallery.py +0 -0
  97. {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/setup.cfg +0 -0
  98. {agenticdome_python_sdk-1.2.34 → 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.34
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,23 +177,76 @@ 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 the tenant-bound `agenticdome plan`, attach
181
- and test the selected boundaries, then run
180
+ `integration_copilot` key, run `agenticdome integrate preview` and
181
+ `agenticdome integrate status`, review the saved
182
+ local exact diff and change summary, explicitly approve a supported edit or
183
+ attach other boundaries manually, then run
182
184
  `agenticdome verify --run-tests --output .agenticdome/verification.json`.
183
- The private plan is required because production verification consumes its
184
- signed, catalog-bound semantic analysis. `agenticdome scaffold` remains
185
- optional and writes an unapplied patch for review.
185
+ Preview obtains the private, signed, catalog-bound semantic plan and keeps
186
+ application source on your machine. `agenticdome integrate apply` creates a
187
+ local Git review branch but never commits, pushes or deploys. Existing-source
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`
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.
186
225
 
187
226
  For an MCP client, host, gateway or server workload, use the focused path:
188
227
 
189
228
  ```bash
190
229
  agenticdome mcp protect
191
- # review the detected role/transport, boundaries, registry and unapplied patch
230
+ # Review the detected role/transport and boundaries, then preview exact local files:
231
+ agenticdome integrate preview --target mcp
232
+ # Review .agenticdome/scaffold/guided-integration.patch and
233
+ # .agenticdome/scaffold/proposed/AGENTICDOME-CHANGES.md
234
+ agenticdome integrate status
235
+ # Optional, after approval: add review files on a local Git branch.
236
+ agenticdome integrate apply
237
+ # Manually attach the wrapper to the real MCP forwarder and reroute clients.
238
+ agenticdome inspect --output agenticdome-inspection.json
192
239
  agenticdome mcp verify
193
240
  ```
194
241
 
195
- `mcp protect` adds no customer source changes. `mcp verify` runs the workload's
196
- tests, a real JSON-RPC stdio subprocess interception rehearsal and live
242
+ `mcp protect` and `integrate preview --target mcp` do not edit customer source.
243
+ An approved `integrate apply` adds only missing MCP review/wrapper files to a
244
+ local Git branch; it does not rewrite an existing forwarder, route clients,
245
+ commit or deploy. If there are no new MCP review files, apply refuses. Undo
246
+ removes only unchanged files added by the approval. Actual interception still
247
+ requires manually connecting the wrapper to the real request/response path,
248
+ trusted identity and purpose, runtime credentials, client routing and tests.
249
+ `mcp verify` runs the workload's tests, a real JSON-RPC stdio subprocess interception rehearsal and live
197
250
  assigned-sidecar decisions. The customer Control Panel combines that evidence
198
251
  with retained runtime evidence before representing production readiness.
199
252
 
@@ -206,6 +259,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
206
259
  openclaw plugins enable agenticdome-security
207
260
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
208
261
  openclaw gateway restart
262
+ openclaw gateway status --require-rpc
209
263
  agenticdome openclaw protect
210
264
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
211
265
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -214,8 +268,16 @@ agenticdome plan
214
268
  agenticdome openclaw verify --output .agenticdome/verification.json
215
269
  ```
216
270
 
217
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
218
- 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.
276
+ The official `openclaw plugins install`, `enable`, `config set` and gateway
277
+ restart commands are the actual runtime configuration change; the Python CLI
278
+ does not apply or undo them. No application source patch is needed for native
279
+ hooks. Custom skill paths outside those hooks need a reviewed manual
280
+ `protectedExecute()` integration and workload-specific tests.
219
281
  `agenticdome plan` returns source-free, tenant-bound Integration Copilot
220
282
  guidance for review. `openclaw verify` adds workspace-test and assigned-tenant
221
283
  policy evidence. If the same deployable workload also uses MCP, this command
@@ -223,7 +285,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
223
285
  `openclaw_verification` in one report. Both sections must be ready before the
224
286
  report is imported; `mcp verify` alone is not a combined-workload proof. The
225
287
  customer Control Panel separately confirms tenant binding and retained
226
- 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.
227
290
 
228
291
  When `.agenticdome/inspection.json` is imported into Developer Integration,
229
292
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1559,6 +1622,13 @@ async def lookup_customer(customer_id: str) -> str:
1559
1622
  )
1560
1623
  ```
1561
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
+
1562
1632
  **Delegated specialist tool pattern:**
1563
1633
 
1564
1634
  ```python
@@ -64,23 +64,76 @@ 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 the tenant-bound `agenticdome plan`, attach
68
- and test the selected boundaries, then run
67
+ `integration_copilot` key, run `agenticdome integrate preview` and
68
+ `agenticdome integrate status`, review the saved
69
+ local exact diff and change summary, explicitly approve a supported edit or
70
+ attach other boundaries manually, then run
69
71
  `agenticdome verify --run-tests --output .agenticdome/verification.json`.
70
- The private plan is required because production verification consumes its
71
- signed, catalog-bound semantic analysis. `agenticdome scaffold` remains
72
- optional and writes an unapplied patch for review.
72
+ Preview obtains the private, signed, catalog-bound semantic plan and keeps
73
+ application source on your machine. `agenticdome integrate apply` creates a
74
+ local Git review branch but never commits, pushes or deploys. Existing-source
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`
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.
73
112
 
74
113
  For an MCP client, host, gateway or server workload, use the focused path:
75
114
 
76
115
  ```bash
77
116
  agenticdome mcp protect
78
- # review the detected role/transport, boundaries, registry and unapplied patch
117
+ # Review the detected role/transport and boundaries, then preview exact local files:
118
+ agenticdome integrate preview --target mcp
119
+ # Review .agenticdome/scaffold/guided-integration.patch and
120
+ # .agenticdome/scaffold/proposed/AGENTICDOME-CHANGES.md
121
+ agenticdome integrate status
122
+ # Optional, after approval: add review files on a local Git branch.
123
+ agenticdome integrate apply
124
+ # Manually attach the wrapper to the real MCP forwarder and reroute clients.
125
+ agenticdome inspect --output agenticdome-inspection.json
79
126
  agenticdome mcp verify
80
127
  ```
81
128
 
82
- `mcp protect` adds no customer source changes. `mcp verify` runs the workload's
83
- tests, a real JSON-RPC stdio subprocess interception rehearsal and live
129
+ `mcp protect` and `integrate preview --target mcp` do not edit customer source.
130
+ An approved `integrate apply` adds only missing MCP review/wrapper files to a
131
+ local Git branch; it does not rewrite an existing forwarder, route clients,
132
+ commit or deploy. If there are no new MCP review files, apply refuses. Undo
133
+ removes only unchanged files added by the approval. Actual interception still
134
+ requires manually connecting the wrapper to the real request/response path,
135
+ trusted identity and purpose, runtime credentials, client routing and tests.
136
+ `mcp verify` runs the workload's tests, a real JSON-RPC stdio subprocess interception rehearsal and live
84
137
  assigned-sidecar decisions. The customer Control Panel combines that evidence
85
138
  with retained runtime evidence before representing production readiness.
86
139
 
@@ -93,6 +146,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
93
146
  openclaw plugins enable agenticdome-security
94
147
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
95
148
  openclaw gateway restart
149
+ openclaw gateway status --require-rpc
96
150
  agenticdome openclaw protect
97
151
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
98
152
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -101,8 +155,16 @@ agenticdome plan
101
155
  agenticdome openclaw verify --output .agenticdome/verification.json
102
156
  ```
103
157
 
104
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
105
- 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.
163
+ The official `openclaw plugins install`, `enable`, `config set` and gateway
164
+ restart commands are the actual runtime configuration change; the Python CLI
165
+ does not apply or undo them. No application source patch is needed for native
166
+ hooks. Custom skill paths outside those hooks need a reviewed manual
167
+ `protectedExecute()` integration and workload-specific tests.
106
168
  `agenticdome plan` returns source-free, tenant-bound Integration Copilot
107
169
  guidance for review. `openclaw verify` adds workspace-test and assigned-tenant
108
170
  policy evidence. If the same deployable workload also uses MCP, this command
@@ -110,7 +172,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
110
172
  `openclaw_verification` in one report. Both sections must be ready before the
111
173
  report is imported; `mcp verify` alone is not a combined-workload proof. The
112
174
  customer Control Panel separately confirms tenant binding and retained
113
- 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.
114
177
 
115
178
  When `.agenticdome/inspection.json` is imported into Developer Integration,
116
179
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1446,6 +1509,13 @@ async def lookup_customer(customer_id: str) -> str:
1446
1509
  )
1447
1510
  ```
1448
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
+
1449
1519
  **Delegated specialist tool pattern:**
1450
1520
 
1451
1521
  ```python
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenticdome-python-sdk
3
- Version: 1.2.34
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,23 +177,76 @@ 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 the tenant-bound `agenticdome plan`, attach
181
- and test the selected boundaries, then run
180
+ `integration_copilot` key, run `agenticdome integrate preview` and
181
+ `agenticdome integrate status`, review the saved
182
+ local exact diff and change summary, explicitly approve a supported edit or
183
+ attach other boundaries manually, then run
182
184
  `agenticdome verify --run-tests --output .agenticdome/verification.json`.
183
- The private plan is required because production verification consumes its
184
- signed, catalog-bound semantic analysis. `agenticdome scaffold` remains
185
- optional and writes an unapplied patch for review.
185
+ Preview obtains the private, signed, catalog-bound semantic plan and keeps
186
+ application source on your machine. `agenticdome integrate apply` creates a
187
+ local Git review branch but never commits, pushes or deploys. Existing-source
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`
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.
186
225
 
187
226
  For an MCP client, host, gateway or server workload, use the focused path:
188
227
 
189
228
  ```bash
190
229
  agenticdome mcp protect
191
- # review the detected role/transport, boundaries, registry and unapplied patch
230
+ # Review the detected role/transport and boundaries, then preview exact local files:
231
+ agenticdome integrate preview --target mcp
232
+ # Review .agenticdome/scaffold/guided-integration.patch and
233
+ # .agenticdome/scaffold/proposed/AGENTICDOME-CHANGES.md
234
+ agenticdome integrate status
235
+ # Optional, after approval: add review files on a local Git branch.
236
+ agenticdome integrate apply
237
+ # Manually attach the wrapper to the real MCP forwarder and reroute clients.
238
+ agenticdome inspect --output agenticdome-inspection.json
192
239
  agenticdome mcp verify
193
240
  ```
194
241
 
195
- `mcp protect` adds no customer source changes. `mcp verify` runs the workload's
196
- tests, a real JSON-RPC stdio subprocess interception rehearsal and live
242
+ `mcp protect` and `integrate preview --target mcp` do not edit customer source.
243
+ An approved `integrate apply` adds only missing MCP review/wrapper files to a
244
+ local Git branch; it does not rewrite an existing forwarder, route clients,
245
+ commit or deploy. If there are no new MCP review files, apply refuses. Undo
246
+ removes only unchanged files added by the approval. Actual interception still
247
+ requires manually connecting the wrapper to the real request/response path,
248
+ trusted identity and purpose, runtime credentials, client routing and tests.
249
+ `mcp verify` runs the workload's tests, a real JSON-RPC stdio subprocess interception rehearsal and live
197
250
  assigned-sidecar decisions. The customer Control Panel combines that evidence
198
251
  with retained runtime evidence before representing production readiness.
199
252
 
@@ -206,6 +259,7 @@ openclaw plugins install npm:agenticdome-openclaw-security
206
259
  openclaw plugins enable agenticdome-security
207
260
  openclaw config set plugins.entries.agenticdome-security.hooks.allowConversationAccess true
208
261
  openclaw gateway restart
262
+ openclaw gateway status --require-rpc
209
263
  agenticdome openclaw protect
210
264
  # With AGENTICDOME_API_BASE, AGENTICDOME_TENANT_ID and the dedicated
211
265
  # AGENTICDOME_COPILOT_API_KEY set, generate and review the signed plan:
@@ -214,8 +268,16 @@ agenticdome plan
214
268
  agenticdome openclaw verify --output .agenticdome/verification.json
215
269
  ```
216
270
 
217
- `openclaw protect` fails unless the active OpenClaw runtime reports the loaded
218
- 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.
276
+ The official `openclaw plugins install`, `enable`, `config set` and gateway
277
+ restart commands are the actual runtime configuration change; the Python CLI
278
+ does not apply or undo them. No application source patch is needed for native
279
+ hooks. Custom skill paths outside those hooks need a reviewed manual
280
+ `protectedExecute()` integration and workload-specific tests.
219
281
  `agenticdome plan` returns source-free, tenant-bound Integration Copilot
220
282
  guidance for review. `openclaw verify` adds workspace-test and assigned-tenant
221
283
  policy evidence. If the same deployable workload also uses MCP, this command
@@ -223,7 +285,8 @@ includes the MCP transport rehearsal and both `mcp_verification` and
223
285
  `openclaw_verification` in one report. Both sections must be ready before the
224
286
  report is imported; `mcp verify` alone is not a combined-workload proof. The
225
287
  customer Control Panel separately confirms tenant binding and retained
226
- 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.
227
290
 
228
291
  When `.agenticdome/inspection.json` is imported into Developer Integration,
229
292
  the Control Panel adds its detected frameworks to the workload. Frameworks,
@@ -1559,6 +1622,13 @@ async def lookup_customer(customer_id: str) -> str:
1559
1622
  )
1560
1623
  ```
1561
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
+
1562
1632
  **Delegated specialist tool pattern:**
1563
1633
 
1564
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,7 +28,11 @@ 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
35
+ agenticdome_sdk/guided_integration.py
31
36
  agenticdome_sdk/hook_catalog.py
32
37
  agenticdome_sdk/identity.py
33
38
  agenticdome_sdk/langgraph.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