narada 0.1.31__py3-none-any.whl → 0.1.32__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.
narada/__init__.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
from narada.client import Narada
|
|
2
|
+
from narada.config import BrowserConfig, ProxyConfig
|
|
3
|
+
from narada.utils import download_file, render_html
|
|
4
|
+
from narada.version import __version__
|
|
5
|
+
from narada.window import LocalBrowserWindow, RemoteBrowserWindow
|
|
1
6
|
from narada_core.errors import (
|
|
2
7
|
NaradaError,
|
|
3
8
|
NaradaExtensionMissingError,
|
|
@@ -8,12 +13,6 @@ from narada_core.errors import (
|
|
|
8
13
|
)
|
|
9
14
|
from narada_core.models import Agent, File, Response, ResponseContent
|
|
10
15
|
|
|
11
|
-
from narada.client import Narada
|
|
12
|
-
from narada.config import BrowserConfig, ProxyConfig
|
|
13
|
-
from narada.utils import download_file, render_html
|
|
14
|
-
from narada.version import __version__
|
|
15
|
-
from narada.window import LocalBrowserWindow, RemoteBrowserWindow
|
|
16
|
-
|
|
17
16
|
__all__ = [
|
|
18
17
|
"__version__",
|
|
19
18
|
"Agent",
|
narada/client.py
CHANGED
|
@@ -11,6 +11,10 @@ from uuid import uuid4
|
|
|
11
11
|
|
|
12
12
|
import aiohttp
|
|
13
13
|
import semver
|
|
14
|
+
from narada.config import BrowserConfig, ProxyConfig
|
|
15
|
+
from narada.utils import assert_never
|
|
16
|
+
from narada.version import __version__
|
|
17
|
+
from narada.window import LocalBrowserWindow, create_side_panel_url
|
|
14
18
|
from narada_core.errors import (
|
|
15
19
|
NaradaExtensionMissingError,
|
|
16
20
|
NaradaExtensionUnauthenticatedError,
|
|
@@ -26,19 +30,14 @@ from playwright.async_api import (
|
|
|
26
30
|
ElementHandle,
|
|
27
31
|
Page,
|
|
28
32
|
Playwright,
|
|
29
|
-
async_playwright,
|
|
30
33
|
)
|
|
34
|
+
from playwright.async_api import TimeoutError as PlaywrightTimeoutError
|
|
31
35
|
from playwright.async_api import (
|
|
32
|
-
|
|
36
|
+
async_playwright,
|
|
33
37
|
)
|
|
34
38
|
from playwright.async_api._context_manager import PlaywrightContextManager
|
|
35
39
|
from rich.console import Console
|
|
36
40
|
|
|
37
|
-
from narada.config import BrowserConfig, ProxyConfig
|
|
38
|
-
from narada.utils import assert_never
|
|
39
|
-
from narada.version import __version__
|
|
40
|
-
from narada.window import LocalBrowserWindow, create_side_panel_url
|
|
41
|
-
|
|
42
41
|
|
|
43
42
|
@dataclass
|
|
44
43
|
class _LaunchBrowserResult:
|
narada/window.py
CHANGED
|
@@ -4,34 +4,35 @@ import time
|
|
|
4
4
|
from abc import ABC
|
|
5
5
|
from http import HTTPStatus
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from typing import IO, Any,
|
|
7
|
+
from typing import IO, Any, TypeVar, overload
|
|
8
8
|
|
|
9
9
|
import aiohttp
|
|
10
|
+
from narada.config import BrowserConfig
|
|
10
11
|
from narada_core.actions.models import (
|
|
11
|
-
|
|
12
|
+
AgenticMouseAction,
|
|
13
|
+
AgenticMouseActionRequest,
|
|
12
14
|
AgenticSelectorAction,
|
|
13
15
|
AgenticSelectorRequest,
|
|
14
16
|
AgenticSelectorResponse,
|
|
15
|
-
AgenticMouseActionRequest,
|
|
16
|
-
AgenticMouseAction,
|
|
17
17
|
AgenticSelectors,
|
|
18
18
|
AgentResponse,
|
|
19
19
|
AgentUsage,
|
|
20
20
|
CloseWindowRequest,
|
|
21
21
|
ExtensionActionRequest,
|
|
22
22
|
ExtensionActionResponse,
|
|
23
|
+
GetFullHtmlRequest,
|
|
24
|
+
GetFullHtmlResponse,
|
|
25
|
+
GetScreenshotRequest,
|
|
26
|
+
GetScreenshotResponse,
|
|
27
|
+
GetSimplifiedHtmlRequest,
|
|
28
|
+
GetSimplifiedHtmlResponse,
|
|
23
29
|
GoToUrlRequest,
|
|
24
30
|
PrintMessageRequest,
|
|
25
31
|
ReadGoogleSheetRequest,
|
|
26
32
|
ReadGoogleSheetResponse,
|
|
27
|
-
WriteGoogleSheetRequest,
|
|
28
33
|
RecordedClick,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
GetSimplifiedHtmlRequest,
|
|
32
|
-
GetSimplifiedHtmlResponse,
|
|
33
|
-
GetScreenshotRequest,
|
|
34
|
-
GetScreenshotResponse,
|
|
34
|
+
WriteGoogleSheetRequest,
|
|
35
|
+
parse_action_trace,
|
|
35
36
|
)
|
|
36
37
|
from narada_core.errors import (
|
|
37
38
|
NaradaAgentTimeoutError_INTERNAL_DO_NOT_USE,
|
|
@@ -41,6 +42,7 @@ from narada_core.errors import (
|
|
|
41
42
|
from narada_core.models import (
|
|
42
43
|
Agent,
|
|
43
44
|
File,
|
|
45
|
+
McpServer,
|
|
44
46
|
RemoteDispatchChatHistoryItem,
|
|
45
47
|
Response,
|
|
46
48
|
UserResourceCredentials,
|
|
@@ -48,8 +50,6 @@ from narada_core.models import (
|
|
|
48
50
|
from playwright.async_api import BrowserContext
|
|
49
51
|
from pydantic import BaseModel
|
|
50
52
|
|
|
51
|
-
from narada.config import BrowserConfig
|
|
52
|
-
|
|
53
53
|
_StructuredOutput = TypeVar("_StructuredOutput", bound=BaseModel)
|
|
54
54
|
|
|
55
55
|
|
|
@@ -129,6 +129,7 @@ class BaseBrowserWindow(ABC):
|
|
|
129
129
|
attachment: File | None = None,
|
|
130
130
|
time_zone: str = "America/Los_Angeles",
|
|
131
131
|
user_resource_credentials: UserResourceCredentials | None = None,
|
|
132
|
+
mcp_servers: list[McpServer] | None = None,
|
|
132
133
|
variables: dict[str, str] | None = None,
|
|
133
134
|
callback_url: str | None = None,
|
|
134
135
|
callback_secret: str | None = None,
|
|
@@ -151,6 +152,7 @@ class BaseBrowserWindow(ABC):
|
|
|
151
152
|
attachment: File | None = None,
|
|
152
153
|
time_zone: str = "America/Los_Angeles",
|
|
153
154
|
user_resource_credentials: UserResourceCredentials | None = None,
|
|
155
|
+
mcp_servers: list[McpServer] | None = None,
|
|
154
156
|
variables: dict[str, str] | None = None,
|
|
155
157
|
callback_url: str | None = None,
|
|
156
158
|
callback_secret: str | None = None,
|
|
@@ -172,6 +174,7 @@ class BaseBrowserWindow(ABC):
|
|
|
172
174
|
attachment: File | None = None,
|
|
173
175
|
time_zone: str = "America/Los_Angeles",
|
|
174
176
|
user_resource_credentials: UserResourceCredentials | None = None,
|
|
177
|
+
mcp_servers: list[McpServer] | None = None,
|
|
175
178
|
variables: dict[str, str] | None = None,
|
|
176
179
|
callback_url: str | None = None,
|
|
177
180
|
callback_secret: str | None = None,
|
|
@@ -213,6 +216,10 @@ class BaseBrowserWindow(ABC):
|
|
|
213
216
|
body["attachment"] = attachment
|
|
214
217
|
if user_resource_credentials is not None:
|
|
215
218
|
body["userResourceCredentials"] = user_resource_credentials
|
|
219
|
+
if mcp_servers is not None:
|
|
220
|
+
body["mcpServers"] = [
|
|
221
|
+
server.model_dump(mode="json") for server in mcp_servers
|
|
222
|
+
]
|
|
216
223
|
if variables is not None:
|
|
217
224
|
body["variables"] = variables
|
|
218
225
|
if callback_url is not None:
|
|
@@ -278,6 +285,7 @@ class BaseBrowserWindow(ABC):
|
|
|
278
285
|
output_schema: None = None,
|
|
279
286
|
attachment: File | None = None,
|
|
280
287
|
time_zone: str = "America/Los_Angeles",
|
|
288
|
+
mcp_servers: list[McpServer] | None = None,
|
|
281
289
|
variables: dict[str, str] | None = None,
|
|
282
290
|
timeout: int = 1000,
|
|
283
291
|
) -> AgentResponse[None]: ...
|
|
@@ -293,6 +301,7 @@ class BaseBrowserWindow(ABC):
|
|
|
293
301
|
output_schema: type[_StructuredOutput],
|
|
294
302
|
attachment: File | None = None,
|
|
295
303
|
time_zone: str = "America/Los_Angeles",
|
|
304
|
+
mcp_servers: list[McpServer] | None = None,
|
|
296
305
|
variables: dict[str, str] | None = None,
|
|
297
306
|
timeout: int = 1000,
|
|
298
307
|
) -> AgentResponse[_StructuredOutput]: ...
|
|
@@ -307,6 +316,7 @@ class BaseBrowserWindow(ABC):
|
|
|
307
316
|
output_schema: type[BaseModel] | None = None,
|
|
308
317
|
attachment: File | None = None,
|
|
309
318
|
time_zone: str = "America/Los_Angeles",
|
|
319
|
+
mcp_servers: list[McpServer] | None = None,
|
|
310
320
|
variables: dict[str, str] | None = None,
|
|
311
321
|
timeout: int = 1000,
|
|
312
322
|
) -> AgentResponse:
|
|
@@ -319,6 +329,7 @@ class BaseBrowserWindow(ABC):
|
|
|
319
329
|
output_schema=output_schema,
|
|
320
330
|
attachment=attachment,
|
|
321
331
|
time_zone=time_zone,
|
|
332
|
+
mcp_servers=mcp_servers,
|
|
322
333
|
variables=variables,
|
|
323
334
|
timeout=timeout,
|
|
324
335
|
)
|
|
@@ -327,7 +338,7 @@ class BaseBrowserWindow(ABC):
|
|
|
327
338
|
|
|
328
339
|
action_trace_raw = response_content.get("actionTrace")
|
|
329
340
|
action_trace = (
|
|
330
|
-
|
|
341
|
+
parse_action_trace(action_trace_raw)
|
|
331
342
|
if action_trace_raw is not None
|
|
332
343
|
else None
|
|
333
344
|
)
|
|
@@ -362,14 +373,13 @@ class BaseBrowserWindow(ABC):
|
|
|
362
373
|
AgenticSelectorRequest(
|
|
363
374
|
action=action,
|
|
364
375
|
selectors=selectors,
|
|
365
|
-
response_model=response_model,
|
|
366
376
|
fallback_operator_query=fallback_operator_query,
|
|
367
377
|
),
|
|
368
378
|
timeout=timeout,
|
|
369
379
|
)
|
|
370
380
|
|
|
371
381
|
if result is None:
|
|
372
|
-
return
|
|
382
|
+
return AgenticSelectorResponse(value=None)
|
|
373
383
|
|
|
374
384
|
return result
|
|
375
385
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: narada
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.32
|
|
4
4
|
Summary: Python client SDK for Narada
|
|
5
5
|
Project-URL: Homepage, https://github.com/NaradaAI/narada-python-sdk/narada
|
|
6
6
|
Project-URL: Repository, https://github.com/NaradaAI/narada-python-sdk
|
|
@@ -9,7 +9,7 @@ Author-email: Narada <support@narada.ai>
|
|
|
9
9
|
License-Expression: Apache-2.0
|
|
10
10
|
Requires-Python: >=3.12
|
|
11
11
|
Requires-Dist: aiohttp>=3.12.13
|
|
12
|
-
Requires-Dist: narada-core==0.0.
|
|
12
|
+
Requires-Dist: narada-core==0.0.10
|
|
13
13
|
Requires-Dist: playwright>=1.53.0
|
|
14
14
|
Requires-Dist: rich>=14.0.0
|
|
15
15
|
Requires-Dist: semver>=3.0.4
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
narada/__init__.py,sha256=HPaTpe3-kHtuFxtdADlFTaPWTyZx5RaKdbt9o9YpTYE,967
|
|
2
|
+
narada/client.py,sha256=GHz4iFsQmvPMfes1gBED6sSdi0tdIpZx6ttFNSeRpFg,21649
|
|
3
|
+
narada/config.py,sha256=S0B8GNd-0td_69oKaPN60WAq_ODeYU7avE_KAxN5vCg,3052
|
|
4
|
+
narada/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
narada/utils.py,sha256=gdLwNMXPpRohDcIIe0cB3KhvZ8X1QfAlKVh1sXWeJmk,1284
|
|
6
|
+
narada/version.py,sha256=kwW6yy0_4Pf3kt888eeCG0VwBb2L2rCkrkpdZEC_3rA,193
|
|
7
|
+
narada/window.py,sha256=YpIiukGcSVGimLB1sJIUII1Nte29YfvoiOp2SUVldZE,21104
|
|
8
|
+
narada-0.1.32.dist-info/METADATA,sha256=XrG2QDIePHLKCuSwAx5GHNceWQ02LD6WZCdVjf4Mbgs,5147
|
|
9
|
+
narada-0.1.32.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
10
|
+
narada-0.1.32.dist-info/RECORD,,
|
narada-0.1.31.dist-info/RECORD
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
narada/__init__.py,sha256=2AnpZVQpkh4-onnvbgHX1Wlq1Fa8ya4vAzy2fbS0bCY,968
|
|
2
|
-
narada/client.py,sha256=_nTRHkiYt7lmUgO0HibVagrPXf523LCbWx8JmuVGgoo,21622
|
|
3
|
-
narada/config.py,sha256=S0B8GNd-0td_69oKaPN60WAq_ODeYU7avE_KAxN5vCg,3052
|
|
4
|
-
narada/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
narada/utils.py,sha256=gdLwNMXPpRohDcIIe0cB3KhvZ8X1QfAlKVh1sXWeJmk,1284
|
|
6
|
-
narada/version.py,sha256=kwW6yy0_4Pf3kt888eeCG0VwBb2L2rCkrkpdZEC_3rA,193
|
|
7
|
-
narada/window.py,sha256=_RyS_oIHJrFJ5ksEvde7NNiGfklVm9uSQoKFFEbUcYw,20648
|
|
8
|
-
narada-0.1.31.dist-info/METADATA,sha256=QJT-6CEwxUA5FMbkBlP9JtzfWtCBJWZD8VQvY3d_xeU,5146
|
|
9
|
-
narada-0.1.31.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
10
|
-
narada-0.1.31.dist-info/RECORD,,
|
|
File without changes
|