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.
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/PKG-INFO +92 -22
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/README.md +81 -11
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/PKG-INFO +92 -22
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/SOURCES.txt +5 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/requires.txt +10 -10
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/__init__.py +5 -0
- agenticdome_python_sdk-1.2.36/agenticdome_sdk/action_path_proof.py +263 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/catalog_snapshot.json +4 -4
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/client.py +6 -0
- agenticdome_python_sdk-1.2.36/agenticdome_sdk/existing_integration.py +250 -0
- agenticdome_python_sdk-1.2.36/agenticdome_sdk/framework_edits.py +448 -0
- agenticdome_python_sdk-1.2.36/agenticdome_sdk/generic_python.py +149 -0
- agenticdome_python_sdk-1.2.36/agenticdome_sdk/guided_integration.py +864 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/hook_catalog.py +8 -8
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_host.py +177 -91
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_http_gateway.py +9 -10
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_verification.py +5 -2
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/onboarding_cli.py +353 -14
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/openai_agents.py +7 -2
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/customer-onboarding.md +144 -23
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/custom-python.md +24 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/mcp-integration.md +68 -13
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/mcp_gateway_action_firewall.py +2 -2
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/pyproject.toml +11 -11
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/CONTRIBUTING.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/LICENSE +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/MANIFEST.in +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/NOTICE +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/SECURITY.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/_framework_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/_mode.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/agno.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/attestation.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/claude.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/connect.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/copilot_ir.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/copilot_ir_collector.cjs +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/demo.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/identity.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/lifecycle.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/mcp_rehearsal_server.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/outcomes.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/proof.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/pydantic.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/simulation.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/agenticdome_sdk/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/README.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/agno.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/autogen.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/aws-bedrock.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/claude-agent-sdk.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/crewai.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/google-adk.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/langgraph.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/llamaindex.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/microsoft-agent-framework.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/microsoft-ai-foundry.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/openai-agents.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/pydanticai.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/frameworks/smolagents.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/performance-evidence.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/docs/runtime-deployment.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/PRODUCTION_INTEGRATION.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/README.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/crewai_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/README.md +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/_shared.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/agno.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/claude_agent_sdk.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/custom_python.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/mcp.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/pydanticai.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/frameworks/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/langgraph_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/examples/local_simulation_gallery.py +0 -0
- {agenticdome_python_sdk-1.2.34 → agenticdome_python_sdk-1.2.36}/setup.cfg +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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.
|
|
67
|
+
Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "bedrock"
|
|
68
68
|
Provides-Extra: aws-bedrock
|
|
69
|
-
Requires-Dist: boto3<=1.43.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
181
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
-
#
|
|
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`
|
|
196
|
-
|
|
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`
|
|
218
|
-
|
|
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
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
#
|
|
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`
|
|
83
|
-
|
|
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`
|
|
105
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
67
|
+
Requires-Dist: boto3<=1.43.105,>=1.43.54; extra == "bedrock"
|
|
68
68
|
Provides-Extra: aws-bedrock
|
|
69
|
-
Requires-Dist: boto3<=1.43.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
181
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
-
#
|
|
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`
|
|
196
|
-
|
|
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`
|
|
218
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
36
|
+
boto3<=1.43.105,>=1.43.54
|
|
37
37
|
|
|
38
38
|
[bedrock]
|
|
39
|
-
boto3<=1.43.
|
|
39
|
+
boto3<=1.43.105,>=1.43.54
|
|
40
40
|
|
|
41
41
|
[claude]
|
|
42
|
-
claude-agent-sdk<=0.2.
|
|
42
|
+
claude-agent-sdk<=0.2.162,>=0.2.126
|
|
43
43
|
|
|
44
44
|
[claude-agent-sdk]
|
|
45
|
-
claude-agent-sdk<=0.2.
|
|
45
|
+
claude-agent-sdk<=0.2.162,>=0.2.126
|
|
46
46
|
|
|
47
47
|
[crewai]
|
|
48
|
-
crewai<=1.15.
|
|
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.
|
|
70
|
+
langchain-core<=1.6.6,>=1.5.0
|
|
71
71
|
langchain-openai==1.3.5
|
|
72
72
|
anyio>=4.0.0
|
|
73
73
|
|