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