From e64f2e129f28a38149595eca267e7ca682329254 Mon Sep 17 00:00:00 2001 From: OG T Date: Mon, 8 Jun 2026 18:44:32 +0800 Subject: [PATCH] fix(sdk-python): enforce json mode in pydantic serialization for http requests to avoid HttpUrl TypeError --- .../vibework_agent_sdk/client.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/agent-sdk-python/vibework_agent_sdk/client.py b/packages/agent-sdk-python/vibework_agent_sdk/client.py index c53296c..cbf96b1 100644 --- a/packages/agent-sdk-python/vibework_agent_sdk/client.py +++ b/packages/agent-sdk-python/vibework_agent_sdk/client.py @@ -39,7 +39,7 @@ class IdentityModule: client: "VibeWorkAgentSDK" def register_agent(self, card: AgentCard) -> Dict[str, str]: - payload = card.model_dump(exclude_none=True) + payload = card.model_dump(mode="json", exclude_none=True) response = self.client._request("post", "/api/mcp/agent_card", payload={"card": payload}) return response @@ -72,7 +72,7 @@ class TasksModule: task_id=task_id, agent_id=agent_id, developer_wallet=developer_wallet, - ).model_dump() + ).model_dump(mode="json") response = self.client._request("post", "/api/mcp/claim_task", payload=payload) return ClaimTaskResponse.model_validate(response) @@ -89,7 +89,7 @@ class TasksModule: deliverables=deliverables, github_pr_url=github_pr_url, ) - response = self.client._request("post", "/api/mcp/submit_solution", payload=payload.model_dump()) + response = self.client._request("post", "/api/mcp/submit_solution", payload=payload.model_dump(mode="json")) return SubmitSolutionResponse.model_validate(response) def list_open_bounties_via_mcp( @@ -116,23 +116,23 @@ class A2AModule: return self.client.tasks.list_open_bounties_via_mcp(limit=limit) def create_sub_task(self, request: CreateSubTaskRequest) -> CreateSubTaskResponse: - response = self.client._request("post", "/api/mcp/create_sub_task", payload=request.model_dump()) + response = self.client._request("post", "/api/mcp/create_sub_task", payload=request.model_dump(mode="json")) return CreateSubTaskResponse.model_validate(response) def request_peer_review(self, request: RequestPeerReviewRequest) -> RequestPeerReviewResponse: - response = self.client._request("post", "/api/mcp/request_peer_review", payload=request.model_dump()) + response = self.client._request("post", "/api/mcp/request_peer_review", payload=request.model_dump(mode="json")) return RequestPeerReviewResponse.model_validate(response) def broadcast_help_signal(self, request: BroadcastHelpSignalRequest) -> BroadcastHelpSignalResponse: - response = self.client._request("post", "/api/mcp/broadcast_help_signal", payload=request.model_dump()) + response = self.client._request("post", "/api/mcp/broadcast_help_signal", payload=request.model_dump(mode="json")) return BroadcastHelpSignalResponse.model_validate(response) def query_agent_memory(self, request: QueryAgentMemoryRequest) -> QueryAgentMemoryResponse: - response = self.client._request("post", "/api/mcp/query_agent_memory", payload=request.model_dump()) + response = self.client._request("post", "/api/mcp/query_agent_memory", payload=request.model_dump(mode="json")) return QueryAgentMemoryResponse.model_validate(response) def rent_api_resource(self, request: RentApiResourceRequest) -> RentApiResourceResponse: - response = self.client._request("post", "/api/mcp/rent_api_resource", payload=request.model_dump()) + response = self.client._request("post", "/api/mcp/rent_api_resource", payload=request.model_dump(mode="json")) return RentApiResourceResponse.model_validate(response)