anchorbrowser 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl

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.
anchorbrowser/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "anchorbrowser"
4
- __version__ = "0.3.0" # x-release-please-version
4
+ __version__ = "0.3.2" # x-release-please-version
@@ -11,18 +11,58 @@ class AgentTaskParams(TypedDict, total=False):
11
11
  url: Optional[str]
12
12
  output_schema: Optional[Dict[str, Any]]
13
13
  on_agent_step: Optional[Callable[[str], None]]
14
-
15
-
16
- def create_task_payload(prompt: str, output_schema: Optional[Dict[str, Any]] = None) -> str:
14
+ agent: Optional[str]
15
+ highlight_elements: Optional[bool]
16
+ model: Optional[str]
17
+ provider: Optional[str]
18
+ detect_elements: Optional[bool]
19
+ extended_system_message: Optional[str]
20
+ human_intervention: Optional[bool]
21
+ max_steps: Optional[int]
22
+ secret_values: Optional[Dict[str, Any]]
23
+
24
+
25
+ def create_task_payload(
26
+ prompt: str,
27
+ output_schema: Optional[Dict[str, Any]] = None,
28
+ agent: Optional[str] = None,
29
+ highlight_elements: Optional[bool] = None,
30
+ model: Optional[str] = None,
31
+ provider: Optional[str] = None,
32
+ detect_elements: Optional[bool] = None,
33
+ extended_system_message: Optional[str] = None,
34
+ human_intervention: Optional[bool] = None,
35
+ max_steps: Optional[int] = None,
36
+ secret_values: Optional[Dict[str, Any]] = None,
37
+ ) -> str:
17
38
  if not prompt or prompt.strip() == "":
18
39
  raise ValueError("Prompt cannot be empty")
19
40
 
20
- return json.dumps(
21
- {
22
- "prompt": prompt,
23
- "output_schema": output_schema,
24
- }
25
- )
41
+ payload: Dict[str, Any] = {
42
+ "prompt": prompt,
43
+ "output_schema": output_schema,
44
+ }
45
+
46
+ if agent is not None:
47
+ payload["agent"] = agent
48
+ if highlight_elements is not None:
49
+ payload["highlight_elements"] = highlight_elements
50
+ if model is not None:
51
+ payload["model"] = model
52
+ if provider is not None:
53
+ payload["provider"] = provider
54
+ if detect_elements is not None:
55
+ payload["detect_elements"] = detect_elements
56
+ if extended_system_message is not None:
57
+ payload["extended_system_message"] = extended_system_message
58
+ if human_intervention is not None:
59
+ payload["human_intervention"] = human_intervention
60
+ if max_steps is not None:
61
+ payload["max_steps"] = max_steps
62
+ if secret_values is not None:
63
+ payload["secret_values"] = secret_values
64
+
65
+ return json.dumps(payload)
26
66
 
27
67
 
28
68
  def on_agent_step_sync(on_agent_step: Callable[[str], None], browser_setup: BrowserSetup) -> Future[None]:
@@ -178,6 +178,15 @@ class AgentTaskParams(TypedDict, total=False):
178
178
  url: Optional[str]
179
179
  output_schema: Optional[Dict[str, Any]]
180
180
  on_agent_step: Optional[Callable[[str], None]]
181
+ agent: Optional[str]
182
+ highlight_elements: Optional[bool]
183
+ model: Optional[str]
184
+ provider: Optional[str]
185
+ detect_elements: Optional[bool]
186
+ extended_system_message: Optional[str]
187
+ human_intervention: Optional[bool]
188
+ max_steps: Optional[int]
189
+ secret_values: Optional[Dict[str, Any]]
181
190
 
182
191
 
183
192
  class BrowserTaskResponse(TypedDict):
@@ -72,15 +72,47 @@ class AgentResource(SyncAPIResource):
72
72
  api_key=self._client.api_key,
73
73
  ) as browser_setup:
74
74
  output_schema = None
75
+ url = None
76
+ agent = None
77
+ highlight_elements = None
78
+ model = None
79
+ provider = None
80
+ detect_elements = None
81
+ extended_system_message = None
82
+ human_intervention = None
83
+ max_steps = None
84
+ secret_values = None
75
85
  if task_options:
76
86
  output_schema = task_options.get("output_schema")
77
87
  url = task_options.get("url")
88
+ agent = task_options.get("agent")
89
+ highlight_elements = task_options.get("highlight_elements")
90
+ model = task_options.get("model")
91
+ provider = task_options.get("provider")
92
+ detect_elements = task_options.get("detect_elements")
93
+ extended_system_message = task_options.get("extended_system_message")
94
+ human_intervention = task_options.get("human_intervention")
95
+ max_steps = task_options.get("max_steps")
96
+ secret_values = task_options.get("secret_values")
97
+
78
98
  if url:
79
99
  browser_setup.page.goto(url)
80
100
  on_agent_step = task_options.get("on_agent_step")
81
101
  if on_agent_step:
82
102
  on_agent_step_sync(on_agent_step, browser_setup)
83
- task_payload = create_task_payload(prompt, output_schema)
103
+ task_payload = create_task_payload(
104
+ prompt,
105
+ output_schema=output_schema,
106
+ agent=agent,
107
+ highlight_elements=highlight_elements,
108
+ model=model,
109
+ provider=provider,
110
+ detect_elements=detect_elements,
111
+ extended_system_message=extended_system_message,
112
+ human_intervention=human_intervention,
113
+ max_steps=max_steps,
114
+ secret_values=secret_values,
115
+ )
84
116
  task_result = str(browser_setup.ai.evaluate(task_payload))
85
117
  return task_result
86
118
 
@@ -121,15 +153,47 @@ class AgentResource(SyncAPIResource):
121
153
  api_key=self._client.api_key,
122
154
  ) as browser_setup:
123
155
  output_schema = None
156
+ url = None
157
+ agent = None
158
+ highlight_elements = None
159
+ model = None
160
+ provider = None
161
+ detect_elements = None
162
+ extended_system_message = None
163
+ human_intervention = None
164
+ max_steps = None
165
+ secret_values = None
124
166
  if task_options:
125
167
  output_schema = task_options.get("output_schema")
126
168
  url = task_options.get("url")
169
+ agent = task_options.get("agent")
170
+ highlight_elements = task_options.get("highlight_elements")
171
+ model = task_options.get("model")
172
+ provider = task_options.get("provider")
173
+ detect_elements = task_options.get("detect_elements")
174
+ extended_system_message = task_options.get("extended_system_message")
175
+ human_intervention = task_options.get("human_intervention")
176
+ max_steps = task_options.get("max_steps")
177
+ secret_values = task_options.get("secret_values")
178
+
127
179
  if url:
128
180
  browser_setup.page.goto(url)
129
181
  on_agent_step = task_options.get("on_agent_step")
130
182
  if on_agent_step:
131
183
  on_agent_step_sync(on_agent_step, browser_setup)
132
- task_payload = create_task_payload(prompt, output_schema)
184
+ task_payload = create_task_payload(
185
+ prompt,
186
+ output_schema=output_schema,
187
+ agent=agent,
188
+ highlight_elements=highlight_elements,
189
+ model=model,
190
+ provider=provider,
191
+ detect_elements=detect_elements,
192
+ extended_system_message=extended_system_message,
193
+ human_intervention=human_intervention,
194
+ max_steps=max_steps,
195
+ secret_values=secret_values,
196
+ )
133
197
  task_result = str(browser_setup.ai.evaluate(task_payload))
134
198
  return BrowserTaskResponse(
135
199
  session_id=session.data.id,
@@ -191,15 +255,47 @@ class AsyncAgentResource(AsyncAPIResource):
191
255
 
192
256
  async with browser_setup:
193
257
  output_schema = None
258
+ url = None
259
+ agent = None
260
+ highlight_elements = None
261
+ model = None
262
+ provider = None
263
+ detect_elements = None
264
+ extended_system_message = None
265
+ human_intervention = None
266
+ max_steps = None
267
+ secret_values = None
194
268
  if task_options:
195
269
  output_schema = task_options.get("output_schema")
196
270
  url = task_options.get("url")
271
+ agent = task_options.get("agent")
272
+ highlight_elements = task_options.get("highlight_elements")
273
+ model = task_options.get("model")
274
+ provider = task_options.get("provider")
275
+ detect_elements = task_options.get("detect_elements")
276
+ extended_system_message = task_options.get("extended_system_message")
277
+ human_intervention = task_options.get("human_intervention")
278
+ max_steps = task_options.get("max_steps")
279
+ secret_values = task_options.get("secret_values")
280
+
197
281
  if url:
198
282
  await (await browser_setup.async_page).goto(url)
199
283
  on_agent_step = task_options.get("on_agent_step")
200
284
  if on_agent_step:
201
285
  on_agent_step_async(on_agent_step, browser_setup)
202
- task_payload = create_task_payload(prompt, output_schema)
286
+ task_payload = create_task_payload(
287
+ prompt,
288
+ output_schema=output_schema,
289
+ agent=agent,
290
+ highlight_elements=highlight_elements,
291
+ model=model,
292
+ provider=provider,
293
+ detect_elements=detect_elements,
294
+ extended_system_message=extended_system_message,
295
+ human_intervention=human_intervention,
296
+ max_steps=max_steps,
297
+ secret_values=secret_values,
298
+ )
203
299
  task_result = await (await browser_setup.async_ai).evaluate(task_payload)
204
300
  return str(task_result)
205
301
 
@@ -240,15 +336,47 @@ class AsyncAgentResource(AsyncAPIResource):
240
336
  api_key=self._client.api_key,
241
337
  ) as browser_setup:
242
338
  output_schema = None
339
+ url = None
340
+ agent = None
341
+ highlight_elements = None
342
+ model = None
343
+ provider = None
344
+ detect_elements = None
345
+ extended_system_message = None
346
+ human_intervention = None
347
+ max_steps = None
348
+ secret_values = None
243
349
  if task_options:
244
350
  output_schema = task_options.get("output_schema")
245
351
  url = task_options.get("url")
352
+ agent = task_options.get("agent")
353
+ highlight_elements = task_options.get("highlight_elements")
354
+ model = task_options.get("model")
355
+ provider = task_options.get("provider")
356
+ detect_elements = task_options.get("detect_elements")
357
+ extended_system_message = task_options.get("extended_system_message")
358
+ human_intervention = task_options.get("human_intervention")
359
+ max_steps = task_options.get("max_steps")
360
+ secret_values = task_options.get("secret_values")
361
+
246
362
  if url:
247
363
  await (await browser_setup.async_page).goto(url)
248
364
  on_agent_step = task_options.get("on_agent_step")
249
365
  if on_agent_step:
250
366
  on_agent_step_async(on_agent_step, browser_setup)
251
- task_payload = create_task_payload(prompt, output_schema)
367
+ task_payload = create_task_payload(
368
+ prompt,
369
+ output_schema=output_schema,
370
+ agent=agent,
371
+ highlight_elements=highlight_elements,
372
+ model=model,
373
+ provider=provider,
374
+ detect_elements=detect_elements,
375
+ extended_system_message=extended_system_message,
376
+ human_intervention=human_intervention,
377
+ max_steps=max_steps,
378
+ secret_values=secret_values,
379
+ )
252
380
  task_result = await (await browser_setup.async_ai).evaluate(task_payload)
253
381
  return BrowserTaskResponse(
254
382
  session_id=session.data.id,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: anchorbrowser
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: The official Python library for the anchorbrowser API
5
5
  Project-URL: Homepage, https://github.com/anchorbrowser/AnchorBrowser-SDK-Python
6
6
  Project-URL: Repository, https://github.com/anchorbrowser/AnchorBrowser-SDK-Python
@@ -68,10 +68,10 @@ client = Anchorbrowser(
68
68
  api_key=os.environ.get("ANCHORBROWSER_API_KEY"), # This is the default and can be omitted
69
69
  )
70
70
 
71
- success_response = client.profiles.create(
72
- name="REPLACE_ME",
71
+ session = client.sessions.create(
72
+ session={"recording": {"active": False}},
73
73
  )
74
- print(success_response.data)
74
+ print(session.data)
75
75
  ```
76
76
 
77
77
  While you can provide an `api_key` keyword argument,
@@ -94,10 +94,10 @@ client = AsyncAnchorbrowser(
94
94
 
95
95
 
96
96
  async def main() -> None:
97
- success_response = await client.profiles.create(
98
- name="REPLACE_ME",
97
+ session = await client.sessions.create(
98
+ session={"recording": {"active": False}},
99
99
  )
100
- print(success_response.data)
100
+ print(session.data)
101
101
 
102
102
 
103
103
  asyncio.run(main())
@@ -129,10 +129,10 @@ async def main() -> None:
129
129
  api_key="Your API Key",
130
130
  http_client=DefaultAioHttpClient(),
131
131
  ) as client:
132
- success_response = await client.profiles.create(
133
- name="REPLACE_ME",
132
+ session = await client.sessions.create(
133
+ session={"recording": {"active": False}},
134
134
  )
135
- print(success_response.data)
135
+ print(session.data)
136
136
 
137
137
 
138
138
  asyncio.run(main())
@@ -196,8 +196,8 @@ from anchorbrowser import Anchorbrowser
196
196
  client = Anchorbrowser()
197
197
 
198
198
  try:
199
- client.profiles.create(
200
- name="REPLACE_ME",
199
+ client.sessions.create(
200
+ session={"recording": {"active": False}},
201
201
  )
202
202
  except anchorbrowser.APIConnectionError as e:
203
203
  print("The server could not be reached")
@@ -241,8 +241,8 @@ client = Anchorbrowser(
241
241
  )
242
242
 
243
243
  # Or, configure per-request:
244
- client.with_options(max_retries=5).profiles.create(
245
- name="REPLACE_ME",
244
+ client.with_options(max_retries=5).sessions.create(
245
+ session={"recording": {"active": False}},
246
246
  )
247
247
  ```
248
248
 
@@ -266,8 +266,8 @@ client = Anchorbrowser(
266
266
  )
267
267
 
268
268
  # Override per-request:
269
- client.with_options(timeout=5.0).profiles.create(
270
- name="REPLACE_ME",
269
+ client.with_options(timeout=5.0).sessions.create(
270
+ session={"recording": {"active": False}},
271
271
  )
272
272
  ```
273
273
 
@@ -309,13 +309,17 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
309
309
  from anchorbrowser import Anchorbrowser
310
310
 
311
311
  client = Anchorbrowser()
312
- response = client.profiles.with_raw_response.create(
313
- name="REPLACE_ME",
312
+ response = client.sessions.with_raw_response.create(
313
+ session={
314
+ "recording": {
315
+ "active": False
316
+ }
317
+ },
314
318
  )
315
319
  print(response.headers.get('X-My-Header'))
316
320
 
317
- profile = response.parse() # get the object that `profiles.create()` would have returned
318
- print(profile.data)
321
+ session = response.parse() # get the object that `sessions.create()` would have returned
322
+ print(session.data)
319
323
  ```
320
324
 
321
325
  These methods return an [`APIResponse`](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/tree/main/src/anchorbrowser/_response.py) object.
@@ -329,8 +333,8 @@ The above interface eagerly reads the full response body when you make the reque
329
333
  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.
330
334
 
331
335
  ```python
332
- with client.profiles.with_streaming_response.create(
333
- name="REPLACE_ME",
336
+ with client.sessions.with_streaming_response.create(
337
+ session={"recording": {"active": False}},
334
338
  ) as response:
335
339
  print(response.headers.get("X-My-Header"))
336
340
 
@@ -11,7 +11,7 @@ anchorbrowser/_resource.py,sha256=7lE1EgpVj5kwckk-27umtigTOf9nKTyRl97cgNwRbRQ,11
11
11
  anchorbrowser/_response.py,sha256=xsiyWOC8LWW-NvbFtZ-MJD4f7eI9RnivKwtKImZ-8o4,28860
12
12
  anchorbrowser/_streaming.py,sha256=9uTovnqQkz3LRbIWe9fSWwzB_aI1cX14LvEuMhkEcDI,10128
13
13
  anchorbrowser/_types.py,sha256=hYSr4gk9908ZiGTqMX3pHhdzfzUUaHVelFS_I6p2Uj0,7243
14
- anchorbrowser/_version.py,sha256=AmvLvo2a7WWqbCB4Zco9XHoWL9wMNVir3L5m_V8pkr4,165
14
+ anchorbrowser/_version.py,sha256=AZ_7aflkLFgIiH3uaHr7gl5FmTPvO9l8uaUJtoODNEM,165
15
15
  anchorbrowser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  anchorbrowser/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
17
17
  anchorbrowser/_utils/_compat.py,sha256=D8gtAvjJQrDWt9upS0XaG9Rr5l1QhiAx_I_1utT_tt0,1195
@@ -26,10 +26,10 @@ anchorbrowser/_utils/_transform.py,sha256=NjCzmnfqYrsAikUHQig6N9QfuTVbKipuP3ur9m
26
26
  anchorbrowser/_utils/_typing.py,sha256=N_5PPuFNsaygbtA_npZd98SVN1LQQvFTKL6bkWPBZGU,4786
27
27
  anchorbrowser/_utils/_utils.py,sha256=0dDqauUbVZEXV0NVl7Bwu904Wwo5eyFCZpQThhFNhyA,12253
28
28
  anchorbrowser/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
29
- anchorbrowser/lib/agent.py,sha256=M9Yg00Ogntfy0DZ9UvxLQp27prAYjo-0SrVLaovLM8g,2078
30
- anchorbrowser/lib/browser.py,sha256=MmkwNbz6k3btKMC6j-gFdbRmlMIyCDF20czRNCelAoA,6041
29
+ anchorbrowser/lib/agent.py,sha256=bPaGn2-Eta1HL0hB0cClL9WSmjwRfHphruBofq1oVvI,3533
30
+ anchorbrowser/lib/browser.py,sha256=I8BGLRRBEAURb_rJHvMh5qGaN73Ln9jmXBwTkHJXOS0,6349
31
31
  anchorbrowser/resources/__init__.py,sha256=xw7K4TTIthqdKN3-YxvyoAtiNmx3dtvHkGbKPcaRhCs,3409
32
- anchorbrowser/resources/agent.py,sha256=2xAcNfeu9otN6qk0RY4pr6fjNloqKriEQEJW50nJAC4,13052
32
+ anchorbrowser/resources/agent.py,sha256=LJoLbgZK75yjSESh9FSM978p7iwKgxgu8MwDaqstIxo,18580
33
33
  anchorbrowser/resources/batch_sessions.py,sha256=d7Jy59NHE0u7mw4sx1N9mhG60-93reu_DqsXsU3stZo,11336
34
34
  anchorbrowser/resources/browser.py,sha256=BB5hq_ayIDL_ziYHq13oj8US3XkHzkoXiGLBm7h9dH0,5548
35
35
  anchorbrowser/resources/events.py,sha256=B6TwziBmOVMjWwoFO7OJR2X_Jt_3jtzNhQg4lgY-7SE,10780
@@ -118,7 +118,7 @@ anchorbrowser/types/shared/success_response.py,sha256=l9OWrucXoSjBdsx5QKdvBPFtxv
118
118
  anchorbrowser/types/task/__init__.py,sha256=CbGxF7UFks1LsFq_wdSi62f4bgThKymv5OOSDmaFBI4,267
119
119
  anchorbrowser/types/task/run_execute_params.py,sha256=P-gRINLzKJ12Q03u7Pwu_6QJ8XFvyvAOVvguy03K98k,6680
120
120
  anchorbrowser/types/task/run_execute_response.py,sha256=ha86lTlKsLA_yZlaHNHEqBM1F--GiOLuifZpAk9J1bM,794
121
- anchorbrowser-0.3.0.dist-info/METADATA,sha256=acgevojvhk_8FafUlAZq9-cV9vmb92Bfr9l3tCP2nt4,15113
122
- anchorbrowser-0.3.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
123
- anchorbrowser-0.3.0.dist-info/licenses/LICENSE,sha256=QYTH6OztHxnELDn890vME8F7-euzmsHhWI4XOSYxwOg,11343
124
- anchorbrowser-0.3.0.dist-info/RECORD,,
121
+ anchorbrowser-0.3.2.dist-info/METADATA,sha256=lpvpcgf-nUavQJHlnZ6ZXC8mi8M2TBYWLUh1vsgmFjA,15279
122
+ anchorbrowser-0.3.2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
123
+ anchorbrowser-0.3.2.dist-info/licenses/LICENSE,sha256=QYTH6OztHxnELDn890vME8F7-euzmsHhWI4XOSYxwOg,11343
124
+ anchorbrowser-0.3.2.dist-info/RECORD,,