anchorbrowser 0.3.1__py3-none-any.whl → 0.3.3__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/_streaming.py +4 -6
- anchorbrowser/_version.py +1 -1
- anchorbrowser/lib/agent.py +49 -9
- anchorbrowser/lib/browser.py +9 -0
- anchorbrowser/resources/agent.py +132 -4
- anchorbrowser/resources/tools.py +39 -0
- anchorbrowser/types/tool_perform_web_task_params.py +25 -0
- {anchorbrowser-0.3.1.dist-info → anchorbrowser-0.3.3.dist-info}/METADATA +1 -1
- {anchorbrowser-0.3.1.dist-info → anchorbrowser-0.3.3.dist-info}/RECORD +11 -11
- {anchorbrowser-0.3.1.dist-info → anchorbrowser-0.3.3.dist-info}/WHEEL +0 -0
- {anchorbrowser-0.3.1.dist-info → anchorbrowser-0.3.3.dist-info}/licenses/LICENSE +0 -0
anchorbrowser/_streaming.py
CHANGED
|
@@ -57,9 +57,8 @@ class Stream(Generic[_T]):
|
|
|
57
57
|
for sse in iterator:
|
|
58
58
|
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
59
59
|
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
...
|
|
60
|
+
# As we might not fully consume the response stream, we need to close it explicitly
|
|
61
|
+
response.close()
|
|
63
62
|
|
|
64
63
|
def __enter__(self) -> Self:
|
|
65
64
|
return self
|
|
@@ -121,9 +120,8 @@ class AsyncStream(Generic[_T]):
|
|
|
121
120
|
async for sse in iterator:
|
|
122
121
|
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
123
122
|
|
|
124
|
-
#
|
|
125
|
-
|
|
126
|
-
...
|
|
123
|
+
# As we might not fully consume the response stream, we need to close it explicitly
|
|
124
|
+
await response.aclose()
|
|
127
125
|
|
|
128
126
|
async def __aenter__(self) -> Self:
|
|
129
127
|
return self
|
anchorbrowser/_version.py
CHANGED
anchorbrowser/lib/agent.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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]:
|
anchorbrowser/lib/browser.py
CHANGED
|
@@ -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):
|
anchorbrowser/resources/agent.py
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
anchorbrowser/resources/tools.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Dict
|
|
5
6
|
from typing_extensions import Literal
|
|
6
7
|
|
|
7
8
|
import httpx
|
|
@@ -128,10 +129,14 @@ class ToolsResource(SyncAPIResource):
|
|
|
128
129
|
prompt: str,
|
|
129
130
|
session_id: str | Omit = omit,
|
|
130
131
|
agent: Literal["browser-use", "openai-cua"] | Omit = omit,
|
|
132
|
+
detect_elements: bool | Omit = omit,
|
|
131
133
|
highlight_elements: bool | Omit = omit,
|
|
134
|
+
human_intervention: bool | Omit = omit,
|
|
135
|
+
max_steps: int | Omit = omit,
|
|
132
136
|
model: str | Omit = omit,
|
|
133
137
|
output_schema: object | Omit = omit,
|
|
134
138
|
provider: Literal["openai", "gemini", "groq", "azure", "xai"] | Omit = omit,
|
|
139
|
+
secret_values: Dict[str, str] | Omit = omit,
|
|
135
140
|
url: str | Omit = omit,
|
|
136
141
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
137
142
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -152,8 +157,16 @@ class ToolsResource(SyncAPIResource):
|
|
|
152
157
|
|
|
153
158
|
agent: The AI agent to use for task completion. Defaults to browser-use.
|
|
154
159
|
|
|
160
|
+
detect_elements: Enable element detection for better interaction accuracy. Improves the agent's
|
|
161
|
+
ability to identify and interact with UI elements.
|
|
162
|
+
|
|
155
163
|
highlight_elements: Whether to highlight elements during task execution for better visibility.
|
|
156
164
|
|
|
165
|
+
human_intervention: Allow human intervention during task execution. When enabled, the agent can
|
|
166
|
+
request human input for ambiguous situations.
|
|
167
|
+
|
|
168
|
+
max_steps: Maximum number of steps the agent can take to complete the task. Defaults to 25.
|
|
169
|
+
|
|
157
170
|
model: The specific model to use for task completion. see our
|
|
158
171
|
[models](/agentic-browser-control/ai-task-completion#available-models) page for
|
|
159
172
|
more information.
|
|
@@ -162,6 +175,9 @@ class ToolsResource(SyncAPIResource):
|
|
|
162
175
|
|
|
163
176
|
provider: The AI provider to use for task completion.
|
|
164
177
|
|
|
178
|
+
secret_values: Secret values to pass to the agent for secure credential handling. Keys and
|
|
179
|
+
values are passed as environment variables to the agent.
|
|
180
|
+
|
|
165
181
|
url: The URL of the webpage. If not provided, the tool will use the current page in
|
|
166
182
|
the session.
|
|
167
183
|
|
|
@@ -179,10 +195,14 @@ class ToolsResource(SyncAPIResource):
|
|
|
179
195
|
{
|
|
180
196
|
"prompt": prompt,
|
|
181
197
|
"agent": agent,
|
|
198
|
+
"detect_elements": detect_elements,
|
|
182
199
|
"highlight_elements": highlight_elements,
|
|
200
|
+
"human_intervention": human_intervention,
|
|
201
|
+
"max_steps": max_steps,
|
|
183
202
|
"model": model,
|
|
184
203
|
"output_schema": output_schema,
|
|
185
204
|
"provider": provider,
|
|
205
|
+
"secret_values": secret_values,
|
|
186
206
|
"url": url,
|
|
187
207
|
},
|
|
188
208
|
tool_perform_web_task_params.ToolPerformWebTaskParams,
|
|
@@ -381,10 +401,14 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
381
401
|
prompt: str,
|
|
382
402
|
session_id: str | Omit = omit,
|
|
383
403
|
agent: Literal["browser-use", "openai-cua"] | Omit = omit,
|
|
404
|
+
detect_elements: bool | Omit = omit,
|
|
384
405
|
highlight_elements: bool | Omit = omit,
|
|
406
|
+
human_intervention: bool | Omit = omit,
|
|
407
|
+
max_steps: int | Omit = omit,
|
|
385
408
|
model: str | Omit = omit,
|
|
386
409
|
output_schema: object | Omit = omit,
|
|
387
410
|
provider: Literal["openai", "gemini", "groq", "azure", "xai"] | Omit = omit,
|
|
411
|
+
secret_values: Dict[str, str] | Omit = omit,
|
|
388
412
|
url: str | Omit = omit,
|
|
389
413
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
390
414
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -405,8 +429,16 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
405
429
|
|
|
406
430
|
agent: The AI agent to use for task completion. Defaults to browser-use.
|
|
407
431
|
|
|
432
|
+
detect_elements: Enable element detection for better interaction accuracy. Improves the agent's
|
|
433
|
+
ability to identify and interact with UI elements.
|
|
434
|
+
|
|
408
435
|
highlight_elements: Whether to highlight elements during task execution for better visibility.
|
|
409
436
|
|
|
437
|
+
human_intervention: Allow human intervention during task execution. When enabled, the agent can
|
|
438
|
+
request human input for ambiguous situations.
|
|
439
|
+
|
|
440
|
+
max_steps: Maximum number of steps the agent can take to complete the task. Defaults to 25.
|
|
441
|
+
|
|
410
442
|
model: The specific model to use for task completion. see our
|
|
411
443
|
[models](/agentic-browser-control/ai-task-completion#available-models) page for
|
|
412
444
|
more information.
|
|
@@ -415,6 +447,9 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
415
447
|
|
|
416
448
|
provider: The AI provider to use for task completion.
|
|
417
449
|
|
|
450
|
+
secret_values: Secret values to pass to the agent for secure credential handling. Keys and
|
|
451
|
+
values are passed as environment variables to the agent.
|
|
452
|
+
|
|
418
453
|
url: The URL of the webpage. If not provided, the tool will use the current page in
|
|
419
454
|
the session.
|
|
420
455
|
|
|
@@ -432,10 +467,14 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
432
467
|
{
|
|
433
468
|
"prompt": prompt,
|
|
434
469
|
"agent": agent,
|
|
470
|
+
"detect_elements": detect_elements,
|
|
435
471
|
"highlight_elements": highlight_elements,
|
|
472
|
+
"human_intervention": human_intervention,
|
|
473
|
+
"max_steps": max_steps,
|
|
436
474
|
"model": model,
|
|
437
475
|
"output_schema": output_schema,
|
|
438
476
|
"provider": provider,
|
|
477
|
+
"secret_values": secret_values,
|
|
439
478
|
"url": url,
|
|
440
479
|
},
|
|
441
480
|
tool_perform_web_task_params.ToolPerformWebTaskParams,
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Dict
|
|
5
6
|
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
6
7
|
|
|
7
8
|
from .._utils import PropertyInfo
|
|
@@ -23,9 +24,27 @@ class ToolPerformWebTaskParams(TypedDict, total=False):
|
|
|
23
24
|
agent: Literal["browser-use", "openai-cua"]
|
|
24
25
|
"""The AI agent to use for task completion. Defaults to browser-use."""
|
|
25
26
|
|
|
27
|
+
detect_elements: bool
|
|
28
|
+
"""Enable element detection for better interaction accuracy.
|
|
29
|
+
|
|
30
|
+
Improves the agent's ability to identify and interact with UI elements.
|
|
31
|
+
"""
|
|
32
|
+
|
|
26
33
|
highlight_elements: bool
|
|
27
34
|
"""Whether to highlight elements during task execution for better visibility."""
|
|
28
35
|
|
|
36
|
+
human_intervention: bool
|
|
37
|
+
"""Allow human intervention during task execution.
|
|
38
|
+
|
|
39
|
+
When enabled, the agent can request human input for ambiguous situations.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
max_steps: int
|
|
43
|
+
"""Maximum number of steps the agent can take to complete the task.
|
|
44
|
+
|
|
45
|
+
Defaults to 25.
|
|
46
|
+
"""
|
|
47
|
+
|
|
29
48
|
model: str
|
|
30
49
|
"""The specific model to use for task completion.
|
|
31
50
|
|
|
@@ -39,6 +58,12 @@ class ToolPerformWebTaskParams(TypedDict, total=False):
|
|
|
39
58
|
provider: Literal["openai", "gemini", "groq", "azure", "xai"]
|
|
40
59
|
"""The AI provider to use for task completion."""
|
|
41
60
|
|
|
61
|
+
secret_values: Dict[str, str]
|
|
62
|
+
"""Secret values to pass to the agent for secure credential handling.
|
|
63
|
+
|
|
64
|
+
Keys and values are passed as environment variables to the agent.
|
|
65
|
+
"""
|
|
66
|
+
|
|
42
67
|
url: str
|
|
43
68
|
"""The URL of the webpage.
|
|
44
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: anchorbrowser
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
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
|
|
@@ -9,9 +9,9 @@ anchorbrowser/_models.py,sha256=SdVtHT3mA235sFDLZl6gYyRl7790d7keqSFEhR2p7K0,3059
|
|
|
9
9
|
anchorbrowser/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
|
|
10
10
|
anchorbrowser/_resource.py,sha256=7lE1EgpVj5kwckk-27umtigTOf9nKTyRl97cgNwRbRQ,1142
|
|
11
11
|
anchorbrowser/_response.py,sha256=xsiyWOC8LWW-NvbFtZ-MJD4f7eI9RnivKwtKImZ-8o4,28860
|
|
12
|
-
anchorbrowser/_streaming.py,sha256=
|
|
12
|
+
anchorbrowser/_streaming.py,sha256=ageQnvSloL91I4OxR1GL6-V5sDa4A_99PX1Sgi-U7zY,10177
|
|
13
13
|
anchorbrowser/_types.py,sha256=hYSr4gk9908ZiGTqMX3pHhdzfzUUaHVelFS_I6p2Uj0,7243
|
|
14
|
-
anchorbrowser/_version.py,sha256=
|
|
14
|
+
anchorbrowser/_version.py,sha256=B2mGIqtrUHRGp26kNi-Bq-PUQc-s3IeMHfR7CK0JAfc,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,17 +26,17 @@ 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=
|
|
30
|
-
anchorbrowser/lib/browser.py,sha256=
|
|
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=
|
|
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
|
|
36
36
|
anchorbrowser/resources/extensions.py,sha256=KWySN-tu8Cxy-LbY3TXLNMPs1s5Hzwwk7Rmr1AYLVeU,15943
|
|
37
37
|
anchorbrowser/resources/profiles.py,sha256=g6xLjfmdXfRM5QV-N-omShpSPO_jMvRRmxKjOllq5RQ,16206
|
|
38
38
|
anchorbrowser/resources/task.py,sha256=kqsbxtyTsO7yuOFlAJqq27uYQNqXtU5N793RIkTsEZ8,16974
|
|
39
|
-
anchorbrowser/resources/tools.py,sha256=
|
|
39
|
+
anchorbrowser/resources/tools.py,sha256=N1JLh3OjDlDe6-opER6-f6lZTkC3Nt14jfnIMNEqGwc,25958
|
|
40
40
|
anchorbrowser/resources/sessions/__init__.py,sha256=51tmuaKqEsEMfFTtZOovPAid6vYyKLkv6quuFBnQSiY,3330
|
|
41
41
|
anchorbrowser/resources/sessions/all.py,sha256=5iN5Vv6UW-2p07lEqiRHw3fFQC4m_acfvsn3yZVi_g0,7193
|
|
42
42
|
anchorbrowser/resources/sessions/clipboard.py,sha256=RuoY6Ev5oKsuk0KhPgtRk5GXCjqCk2D16e2hXzRY-4I,9572
|
|
@@ -87,7 +87,7 @@ anchorbrowser/types/task_list_params.py,sha256=pu0gLGBp5UxKLpbEpSEz-J-kSRrY6VIvz
|
|
|
87
87
|
anchorbrowser/types/task_list_response.py,sha256=cxLCLS7yX3CpnpbAGhTb9rshW4DFUtjLxKWPLe8_99A,8126
|
|
88
88
|
anchorbrowser/types/tool_fetch_webpage_params.py,sha256=g_C7tLpyFx4I2r7-iizM7ZiQ71-VfowCj9aufaSHjmg,1181
|
|
89
89
|
anchorbrowser/types/tool_fetch_webpage_response.py,sha256=hdbrNgPz_LeWa3_aVbtck-n-SRvO4moFDbGoSf_2_tU,210
|
|
90
|
-
anchorbrowser/types/tool_perform_web_task_params.py,sha256=
|
|
90
|
+
anchorbrowser/types/tool_perform_web_task_params.py,sha256=zKqMh8Pfv_srj6etezurzZ-sbSTqjHWoLgoebq3rFrk,2119
|
|
91
91
|
anchorbrowser/types/tool_perform_web_task_response.py,sha256=c7GCKQxXNql6UxXDXcRcetxUg0lOHd5lB4DdbKoKwh4,400
|
|
92
92
|
anchorbrowser/types/tool_screenshot_webpage_params.py,sha256=a7p4nCi6mQRJvTZD3wYDa67UGsB4v4CqOhW6x8-9Rrk,1344
|
|
93
93
|
anchorbrowser/types/sessions/__init__.py,sha256=kiMjL-pt4Umx2DAnt8UP8lo4eM9X_UBDXO7JdYBzpcs,1493
|
|
@@ -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.
|
|
122
|
-
anchorbrowser-0.3.
|
|
123
|
-
anchorbrowser-0.3.
|
|
124
|
-
anchorbrowser-0.3.
|
|
121
|
+
anchorbrowser-0.3.3.dist-info/METADATA,sha256=K3uNE9BrvZm85sAuYI9nltizQZ6_e7HkrTQsukvT0vw,15279
|
|
122
|
+
anchorbrowser-0.3.3.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
123
|
+
anchorbrowser-0.3.3.dist-info/licenses/LICENSE,sha256=QYTH6OztHxnELDn890vME8F7-euzmsHhWI4XOSYxwOg,11343
|
|
124
|
+
anchorbrowser-0.3.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|