Jarvis-Brain 0.1.4.6__py3-none-any.whl → 0.1.5.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Jarvis_Brain
3
- Version: 0.1.4.6
3
+ Version: 0.1.5.0
4
4
  Summary: Jarvis brain mcp
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: beautifulsoup4
@@ -1,10 +1,10 @@
1
1
  mcp_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- mcp_tools/dp_tools.py,sha256=S0__-GrhekKlJ4TjibgUHzlIFabu4zCkHSei6i5H5uo,7985
2
+ mcp_tools/dp_tools.py,sha256=TsktupVxzQkDRH4w-niEqJba3LkeWxIeyyx24ehpqAs,8411
3
3
  mcp_tools/main.py,sha256=wplNNm2IjL1QcmPPBf1SOU2_HZIU75VQA3UBjun33g8,795
4
4
  tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  tools/browser_manager.py,sha256=WPvQjG54oblGa--2qWOAJOf8bmvVbu8UniB1zLSM_hM,1459
6
6
  tools/tools.py,sha256=qPa80xzQWCD8mSdg8isCgyei0XN8a7guGtR2J_MbQDU,4481
7
- jarvis_brain-0.1.4.6.dist-info/METADATA,sha256=-LUwetAQs5uP-PUHBCOqg7-c1tEeC3XLjVfAflhLyMk,241
8
- jarvis_brain-0.1.4.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
- jarvis_brain-0.1.4.6.dist-info/entry_points.txt,sha256=YFQT4xpkUqt5dM5wlKPQQOqcjMuFrT9iuRAzIpAyH7U,51
10
- jarvis_brain-0.1.4.6.dist-info/RECORD,,
7
+ jarvis_brain-0.1.5.0.dist-info/METADATA,sha256=ZOOB8ZZapYxhABzMVkZU6qwVrp8ic5F5WgdFCyV_7FI,241
8
+ jarvis_brain-0.1.5.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
+ jarvis_brain-0.1.5.0.dist-info/entry_points.txt,sha256=YFQT4xpkUqt5dM5wlKPQQOqcjMuFrT9iuRAzIpAyH7U,51
10
+ jarvis_brain-0.1.5.0.dist-info/RECORD,,
mcp_tools/dp_tools.py CHANGED
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import os
2
3
  from typing import Any
3
4
 
@@ -69,19 +70,28 @@ def register_close_tab(mcp: FastMCP, browser_manager):
69
70
 
70
71
 
71
72
  def register_check_selector(mcp: FastMCP, browser_manager):
72
- @mcp.tool(name="check_selector", description="查找tab页中是否包含某个元素")
73
- async def check_selector(browser_port: int, tab_id: str, css_selector: str) -> dict[str, Any]:
73
+ @mcp.tool(name="check_selector", description="查找tab页中是否包含元素,并返回元素attr_name所对应的值")
74
+ async def check_selector(browser_port: int, tab_id: str, css_selector: str, attr_name: str = "text") -> dict[str, Any]:
74
75
  _browser = browser_manager.get_browser(browser_port)
75
76
  target_tab = _browser.get_tab(tab_id)
76
77
  css_selector = css_selector
77
78
  if "css:" not in css_selector:
78
79
  css_selector = "css:" + css_selector
79
- target_ele = target_tab.ele(css_selector)
80
+ target_eles = target_tab.eles(css_selector)
81
+ exist_flag = False
82
+ if len(target_eles) != 0:
83
+ exist_flag = True
84
+ if attr_name == "text":
85
+ ele_text_list = [i.text.replace("\n", "") for i in target_eles]
86
+ attr_output = "\n".join(ele_text_list)
87
+ else:
88
+ attr_output = json.dumps([i.attr(attr_name) for i in target_eles])
80
89
  return dp_mcp_message_pack(
81
90
  f"已完成tab页:【{tab_id}】对:【{css_selector}】的检查",
82
91
  tab_id=tab_id,
83
92
  selector=css_selector,
84
- selector_ele_exist=not isinstance(target_ele, NoneElement)
93
+ selector_ele_exist=exist_flag,
94
+ attr_output=attr_output
85
95
  )
86
96
 
87
97