Skip to content

Commit e852710

Browse files
committed
Remove hardcoded timeout for control messages to match Typescript SDK
1 parent 5325dea commit e852710

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

src/claude_code_sdk/_errors.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Error types for Claude SDK."""
22

3+
from typing import Any
4+
35

46
class ClaudeSDKError(Exception):
57
"""Base exception for all Claude SDK errors."""
@@ -49,6 +51,6 @@ def __init__(self, line: str, original_error: Exception):
4951
class MessageParseError(ClaudeSDKError):
5052
"""Raised when unable to parse a message from CLI output."""
5153

52-
def __init__(self, message: str, data: dict | None = None):
54+
def __init__(self, message: str, data: dict[str, Any] | None = None):
5355
self.data = data
5456
super().__init__(message)

src/claude_code_sdk/_internal/transport/subprocess_cli.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -394,19 +394,13 @@ async def _send_control_request(self, request: dict[str, Any]) -> dict[str, Any]
394394
# Send request
395395
await self._stdin_stream.send(json.dumps(control_request) + "\n")
396396

397-
# Wait for response with timeout
398-
try:
399-
with anyio.fail_after(30.0): # 30 second timeout
400-
while request_id not in self._pending_control_responses:
401-
await anyio.sleep(0.1)
397+
# Wait for response
398+
while request_id not in self._pending_control_responses:
399+
await anyio.sleep(0.1)
402400

403-
response = self._pending_control_responses.pop(request_id)
401+
response = self._pending_control_responses.pop(request_id)
404402

405-
if response.get("subtype") == "error":
406-
raise CLIConnectionError(
407-
f"Control request failed: {response.get('error')}"
408-
)
403+
if response.get("subtype") == "error":
404+
raise CLIConnectionError(f"Control request failed: {response.get('error')}")
409405

410-
return response
411-
except TimeoutError:
412-
raise CLIConnectionError("Control request timed out") from None
406+
return response

0 commit comments

Comments
 (0)