Skip to content

Commit 54f3289

Browse files
feat(api): manual updates
1 parent 9b9d548 commit 54f3289

23 files changed

+90
-2066
lines changed

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 7
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-705638ac8966569986bd9ebb7c9761bf0016909e9f2753e77ceabb12c8049511.yml
3-
openapi_spec_hash: a8fbbcaa38e91c7f97313620b42d8d62
1+
configured_endpoints: 1
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-516862e7e90968bc55ac44ce7ffe2d5c1f738c11757471c2b9e0e4cff9384f2c.yml
3+
openapi_spec_hash: 19bbe52a6ae0eec7fc3f6698e831ee55
44
config_hash: a35b56eb05306a0f02e83c11d57f975f

README.md

Lines changed: 9 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,7 @@ client = Stagehand(
4141
model_api_key=os.environ.get("MODEL_API_KEY"), # This is the default and can be omitted
4242
)
4343

44-
response = client.sessions.act(
45-
session_id="00000000-your-session-id-000000000000",
46-
input="click the first link on the page",
47-
)
48-
print(response.actions)
44+
response = client.sessions.start()
4945
```
5046

5147
While you can provide a `browserbase_api_key` keyword argument,
@@ -74,11 +70,7 @@ client = AsyncStagehand(
7470

7571

7672
async def main() -> None:
77-
response = await client.sessions.act(
78-
session_id="00000000-your-session-id-000000000000",
79-
input="click the first link on the page",
80-
)
81-
print(response.actions)
73+
response = await client.sessions.start()
8274

8375

8476
asyncio.run(main())
@@ -117,11 +109,7 @@ async def main() -> None:
117109
model_api_key=os.environ.get("MODEL_API_KEY"), # This is the default and can be omitted
118110
http_client=DefaultAioHttpClient(),
119111
) as client:
120-
response = await client.sessions.act(
121-
session_id="00000000-your-session-id-000000000000",
122-
input="click the first link on the page",
123-
)
124-
print(response.actions)
112+
response = await client.sessions.start()
125113

126114

127115
asyncio.run(main())
@@ -136,23 +124,6 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
136124

137125
Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.
138126

139-
## Nested params
140-
141-
Nested parameters are dictionaries, typed using `TypedDict`, for example:
142-
143-
```python
144-
from stagehand import Stagehand
145-
146-
client = Stagehand()
147-
148-
response = client.sessions.act(
149-
session_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
150-
input="click the sign in button",
151-
options={},
152-
)
153-
print(response.options)
154-
```
155-
156127
## Handling errors
157128

158129
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `stagehand.APIConnectionError` is raised.
@@ -169,10 +140,7 @@ from stagehand import Stagehand
169140
client = Stagehand()
170141

171142
try:
172-
client.sessions.start(
173-
browserbase_api_key="your Browserbase API key",
174-
browserbase_project_id="your Browserbase Project ID",
175-
)
143+
client.sessions.start()
176144
except stagehand.APIConnectionError as e:
177145
print("The server could not be reached")
178146
print(e.__cause__) # an underlying Exception, likely raised within httpx.
@@ -215,10 +183,7 @@ client = Stagehand(
215183
)
216184

217185
# Or, configure per-request:
218-
client.with_options(max_retries=5).sessions.start(
219-
browserbase_api_key="your Browserbase API key",
220-
browserbase_project_id="your Browserbase Project ID",
221-
)
186+
client.with_options(max_retries=5).sessions.start()
222187
```
223188

224189
### Timeouts
@@ -241,10 +206,7 @@ client = Stagehand(
241206
)
242207

243208
# Override per-request:
244-
client.with_options(timeout=5.0).sessions.start(
245-
browserbase_api_key="your Browserbase API key",
246-
browserbase_project_id="your Browserbase Project ID",
247-
)
209+
client.with_options(timeout=5.0).sessions.start()
248210
```
249211

250212
On timeout, an `APITimeoutError` is thrown.
@@ -285,14 +247,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
285247
from stagehand import Stagehand
286248

287249
client = Stagehand()
288-
response = client.sessions.with_raw_response.start(
289-
browserbase_api_key="your Browserbase API key",
290-
browserbase_project_id="your Browserbase Project ID",
291-
)
250+
response = client.sessions.with_raw_response.start()
292251
print(response.headers.get('X-My-Header'))
293252

294253
session = response.parse() # get the object that `sessions.start()` would have returned
295-
print(session.available)
254+
print(session)
296255
```
297256

298257
These methods return an [`APIResponse`](https://github.com/browserbase/stagehand-python/tree/stainless/src/stagehand/_response.py) object.
@@ -306,10 +265,7 @@ The above interface eagerly reads the full response body when you make the reque
306265
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
307266

308267
```python
309-
with client.sessions.with_streaming_response.start(
310-
browserbase_api_key="your Browserbase API key",
311-
browserbase_project_id="your Browserbase Project ID",
312-
) as response:
268+
with client.sessions.with_streaming_response.start() as response:
313269
print(response.headers.get("X-My-Header"))
314270

315271
for line in response.iter_lines():

api.md

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,9 @@
33
Types:
44

55
```python
6-
from stagehand.types import (
7-
Action,
8-
ModelConfig,
9-
SessionActResponse,
10-
SessionEndResponse,
11-
SessionExecuteAgentResponse,
12-
SessionExtractResponse,
13-
SessionNavigateResponse,
14-
SessionObserveResponse,
15-
SessionStartResponse,
16-
)
6+
from stagehand.types import Action, ModelConfig
177
```
188

199
Methods:
2010

21-
- <code title="post /sessions/{sessionId}/act">client.sessions.<a href="./src/stagehand/resources/sessions.py">act</a>(session_id, \*\*<a href="src/stagehand/types/session_act_params.py">params</a>) -> <a href="./src/stagehand/types/session_act_response.py">SessionActResponse</a></code>
22-
- <code title="post /sessions/{sessionId}/end">client.sessions.<a href="./src/stagehand/resources/sessions.py">end</a>(session_id) -> <a href="./src/stagehand/types/session_end_response.py">SessionEndResponse</a></code>
23-
- <code title="post /sessions/{sessionId}/agentExecute">client.sessions.<a href="./src/stagehand/resources/sessions.py">execute_agent</a>(session_id, \*\*<a href="src/stagehand/types/session_execute_agent_params.py">params</a>) -> <a href="./src/stagehand/types/session_execute_agent_response.py">SessionExecuteAgentResponse</a></code>
24-
- <code title="post /sessions/{sessionId}/extract">client.sessions.<a href="./src/stagehand/resources/sessions.py">extract</a>(session_id, \*\*<a href="src/stagehand/types/session_extract_params.py">params</a>) -> <a href="./src/stagehand/types/session_extract_response.py">SessionExtractResponse</a></code>
25-
- <code title="post /sessions/{sessionId}/navigate">client.sessions.<a href="./src/stagehand/resources/sessions.py">navigate</a>(session_id, \*\*<a href="src/stagehand/types/session_navigate_params.py">params</a>) -> <a href="./src/stagehand/types/session_navigate_response.py">Optional[SessionNavigateResponse]</a></code>
26-
- <code title="post /sessions/{sessionId}/observe">client.sessions.<a href="./src/stagehand/resources/sessions.py">observe</a>(session_id, \*\*<a href="src/stagehand/types/session_observe_params.py">params</a>) -> <a href="./src/stagehand/types/session_observe_response.py">SessionObserveResponse</a></code>
27-
- <code title="post /sessions/start">client.sessions.<a href="./src/stagehand/resources/sessions.py">start</a>(\*\*<a href="src/stagehand/types/session_start_params.py">params</a>) -> <a href="./src/stagehand/types/session_start_response.py">SessionStartResponse</a></code>
11+
- <code title="post /sessions/start">client.sessions.<a href="./src/stagehand/resources/sessions.py">start</a>(\*\*<a href="src/stagehand/types/session_start_params.py">params</a>) -> object</code>

0 commit comments

Comments
 (0)