1616 session_navigate_params ,
1717)
1818from ._types import Body , Omit , Query , Headers , NotGiven , omit , not_given
19- from .types .session_start_response import SessionStartResponse , Data as SessionStartResponseData
2019from .types .session_act_response import SessionActResponse
2120from .types .session_end_response import SessionEndResponse
21+ from .types .session_start_response import Data as SessionStartResponseData , SessionStartResponse
2222from .types .session_execute_response import SessionExecuteResponse
2323from .types .session_extract_response import SessionExtractResponse
2424from .types .session_observe_response import SessionObserveResponse
@@ -41,10 +41,10 @@ class Session(SessionStartResponse):
4141 """A Stagehand session bound to a specific `session_id`."""
4242
4343 def __init__ (self , client : Stagehand , id : str , data : SessionStartResponseData , success : bool ) -> None :
44+ # Must call super().__init__() first to initialize Pydantic's __pydantic_extra__ before setting attributes
45+ super ().__init__ (data = data , success = success )
4446 self ._client = client
4547 self .id = id
46- # in case user tries to use client.sessions.start(...) return value as a SessionStartResponse dataclass/dict
47- super ().__init__ (data = data , success = success )
4848
4949
5050 def navigate (
@@ -140,8 +140,6 @@ def execute(
140140 def end (
141141 self ,
142142 * ,
143- x_language : Literal ["typescript" , "python" , "playground" ] | Omit = omit ,
144- x_sdk_version : str | Omit = omit ,
145143 x_sent_at : Union [str , datetime ] | Omit = omit ,
146144 x_stream_response : Literal ["true" , "false" ] | Omit = omit ,
147145 extra_headers : Headers | None = None ,
@@ -151,8 +149,6 @@ def end(
151149 ) -> SessionEndResponse :
152150 return self ._client .sessions .end (
153151 id = self .id ,
154- x_language = x_language ,
155- x_sdk_version = x_sdk_version ,
156152 x_sent_at = x_sent_at ,
157153 x_stream_response = x_stream_response ,
158154 extra_headers = extra_headers ,
@@ -166,9 +162,10 @@ class AsyncSession(SessionStartResponse):
166162 """Async variant of `Session`."""
167163
168164 def __init__ (self , client : AsyncStagehand , id : str , data : SessionStartResponseData , success : bool ) -> None :
165+ # Must call super().__init__() first to initialize Pydantic's __pydantic_extra__ before setting attributes
166+ super ().__init__ (data = data , success = success )
169167 self ._client = client
170168 self .id = id
171- super ().__init__ (data = data , success = success )
172169
173170 async def navigate (
174171 self ,
@@ -263,8 +260,6 @@ async def execute(
263260 async def end (
264261 self ,
265262 * ,
266- x_language : Literal ["typescript" , "python" , "playground" ] | Omit = omit ,
267- x_sdk_version : str | Omit = omit ,
268263 x_sent_at : Union [str , datetime ] | Omit = omit ,
269264 x_stream_response : Literal ["true" , "false" ] | Omit = omit ,
270265 extra_headers : Headers | None = None ,
@@ -274,8 +269,6 @@ async def end(
274269 ) -> SessionEndResponse :
275270 return await self ._client .sessions .end (
276271 id = self .id ,
277- x_language = x_language ,
278- x_sdk_version = x_sdk_version ,
279272 x_sent_at = x_sent_at ,
280273 x_stream_response = x_stream_response ,
281274 extra_headers = extra_headers ,
0 commit comments