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
- TimeoutError as PlaywrightTimeoutError,
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, Optional, TypeVar, overload
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
- ActionTraceItem,
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
- GetFullHtmlRequest,
30
- GetFullHtmlResponse,
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
- [ActionTraceItem.model_validate(item) for item in action_trace_raw]
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 {"value": None}
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.31
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.9
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,,
@@ -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,,