browserwright 0.6.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.
Files changed (98) hide show
  1. browserwright/__init__.py +33 -0
  2. browserwright/__main__.py +6 -0
  3. browserwright/_executor/__init__.py +47 -0
  4. browserwright/_executor/__main__.py +9 -0
  5. browserwright/_executor/client.py +127 -0
  6. browserwright/_executor/process.py +652 -0
  7. browserwright/_executor/protocol.py +152 -0
  8. browserwright/api.py +66 -0
  9. browserwright/cdp.py +285 -0
  10. browserwright/cli.py +741 -0
  11. browserwright/daemon/__init__.py +8 -0
  12. browserwright/daemon/_ipc.py +444 -0
  13. browserwright/daemon/active_tab.py +183 -0
  14. browserwright/daemon/auth.py +395 -0
  15. browserwright/daemon/backends/__init__.py +59 -0
  16. browserwright/daemon/backends/base.py +120 -0
  17. browserwright/daemon/backends/cloud.py +222 -0
  18. browserwright/daemon/backends/env.py +119 -0
  19. browserwright/daemon/backends/extension.py +185 -0
  20. browserwright/daemon/backends/rdp.py +214 -0
  21. browserwright/daemon/cli.py +1437 -0
  22. browserwright/daemon/config.py +380 -0
  23. browserwright/daemon/doctor.py +179 -0
  24. browserwright/daemon/errors.py +34 -0
  25. browserwright/daemon/launch_chrome.py +353 -0
  26. browserwright/daemon/observability.py +181 -0
  27. browserwright/daemon/platforms.py +234 -0
  28. browserwright/daemon/resolver.py +72 -0
  29. browserwright/daemon/server/__init__.py +6 -0
  30. browserwright/daemon/server/daemon.py +229 -0
  31. browserwright/daemon/server/executor_registry.py +434 -0
  32. browserwright/daemon/server/extension_upstream.py +677 -0
  33. browserwright/daemon/server/facade.py +375 -0
  34. browserwright/daemon/server/facade_extension.py +969 -0
  35. browserwright/daemon/server/listener.py +1058 -0
  36. browserwright/daemon/server/proxy.py +1991 -0
  37. browserwright/daemon/server/relay.py +783 -0
  38. browserwright/daemon/server/state.py +432 -0
  39. browserwright/daemon/server/upstream.py +266 -0
  40. browserwright/daemon/userscripts.py +150 -0
  41. browserwright/discovery.py +213 -0
  42. browserwright/errors.py +177 -0
  43. browserwright/health.py +169 -0
  44. browserwright/install.py +628 -0
  45. browserwright/memory/__init__.py +15 -0
  46. browserwright/memory/_md.py +120 -0
  47. browserwright/memory/_yaml.py +217 -0
  48. browserwright/memory/global_mem.py +201 -0
  49. browserwright/memory/repl_mem.py +28 -0
  50. browserwright/memory/session_decisions.py +53 -0
  51. browserwright/memory/site_mem.py +381 -0
  52. browserwright/mode_b_client.py +590 -0
  53. browserwright/multitask.py +131 -0
  54. browserwright/output_schema.py +99 -0
  55. browserwright/primitives/__init__.py +67 -0
  56. browserwright/primitives/discovery_api.py +79 -0
  57. browserwright/primitives/http.py +42 -0
  58. browserwright/primitives/inspect.py +876 -0
  59. browserwright/primitives/interact.py +518 -0
  60. browserwright/primitives/page.py +556 -0
  61. browserwright/primitives/site.py +143 -0
  62. browserwright/release_install.py +466 -0
  63. browserwright/repl/__init__.py +6 -0
  64. browserwright/repl/_namespace.py +106 -0
  65. browserwright/repl/_smart_goto.py +236 -0
  66. browserwright/repl/inline.py +180 -0
  67. browserwright/repl/playwright_handle.py +449 -0
  68. browserwright/repl/snapshot.py +150 -0
  69. browserwright/session.py +229 -0
  70. browserwright/session_create.py +252 -0
  71. browserwright/session_ctx.py +24 -0
  72. browserwright/session_registry.py +133 -0
  73. browserwright/session_runtime.py +133 -0
  74. browserwright/site_skills_starter/github.com/SKILL.md +14 -0
  75. browserwright/site_skills_starter/github.com/memory.md +29 -0
  76. browserwright/site_skills_starter/github.com/tasks/list_issues.py +55 -0
  77. browserwright/site_skills_starter/google.com/SKILL.md +16 -0
  78. browserwright/site_skills_starter/google.com/memory.md +27 -0
  79. browserwright/site_skills_starter/google.com/tasks/search.py +53 -0
  80. browserwright/site_skills_starter/producthunt.com/SKILL.md +7 -0
  81. browserwright/site_skills_starter/producthunt.com/memory.md +26 -0
  82. browserwright/site_skills_starter/producthunt.com/tasks/today.py +64 -0
  83. browserwright/site_skills_starter/wikipedia.org/SKILL.md +7 -0
  84. browserwright/site_skills_starter/wikipedia.org/memory.md +22 -0
  85. browserwright/site_skills_starter/wikipedia.org/tasks/lookup.py +55 -0
  86. browserwright/site_skills_starter/ycombinator.com/SKILL.md +8 -0
  87. browserwright/site_skills_starter/ycombinator.com/memory.md +25 -0
  88. browserwright/site_skills_starter/ycombinator.com/tasks/front_page.py +63 -0
  89. browserwright/skill_doc.py +140 -0
  90. browserwright/skill_runtime.md +194 -0
  91. browserwright/subscriptions.py +213 -0
  92. browserwright/task_runner.py +125 -0
  93. browserwright/version.py +117 -0
  94. browserwright-0.6.2.dist-info/METADATA +12 -0
  95. browserwright-0.6.2.dist-info/RECORD +98 -0
  96. browserwright-0.6.2.dist-info/WHEEL +5 -0
  97. browserwright-0.6.2.dist-info/entry_points.txt +3 -0
  98. browserwright-0.6.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,117 @@
1
+ """Version metadata shared by the CLI, daemon, extension, and skill shell."""
2
+ from __future__ import annotations
3
+
4
+ import json
5
+ import re
6
+ from dataclasses import dataclass
7
+ from importlib import metadata
8
+ from pathlib import Path
9
+
10
+
11
+ PACKAGE_NAME = "browserwright"
12
+ EXTENSION_PROTOCOL_VERSION = "1"
13
+ _SEMVER_RE = re.compile(
14
+ r"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)"
15
+ r"(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$"
16
+ )
17
+
18
+
19
+ def _repo_root() -> Path | None:
20
+ here = Path(__file__).resolve()
21
+ for parent in here.parents:
22
+ if (parent / "pyproject.toml").is_file():
23
+ return parent
24
+ return None
25
+
26
+
27
+ def _version_from_pyproject() -> str | None:
28
+ root = _repo_root()
29
+ if root is None:
30
+ return None
31
+ try:
32
+ import tomllib
33
+
34
+ data = tomllib.loads((root / "pyproject.toml").read_text(encoding="utf-8"))
35
+ version = data.get("project", {}).get("version")
36
+ return str(version) if version else None
37
+ except Exception:
38
+ return None
39
+
40
+
41
+ def package_version() -> str:
42
+ """Return the installed package version, falling back to local pyproject."""
43
+ try:
44
+ return metadata.version(PACKAGE_NAME)
45
+ except metadata.PackageNotFoundError:
46
+ return _version_from_pyproject() or "0.0.0+unknown"
47
+
48
+
49
+ __version__ = package_version()
50
+
51
+
52
+ def is_semver(value: str) -> bool:
53
+ return bool(_SEMVER_RE.match(value))
54
+
55
+
56
+ def extension_manifest_path() -> Path | None:
57
+ root = _repo_root()
58
+ if root is not None:
59
+ path = root / "chrome-extension" / "manifest.json"
60
+ if path.is_file():
61
+ return path
62
+ # Installed local releases keep chrome-extension beside the release .venv.
63
+ for parent in Path(__file__).resolve().parents:
64
+ path = parent / "chrome-extension" / "manifest.json"
65
+ if path.is_file():
66
+ return path
67
+ return None
68
+
69
+
70
+ def extension_version() -> str | None:
71
+ path = extension_manifest_path()
72
+ if path is None:
73
+ return None
74
+ try:
75
+ return str(json.loads(path.read_text(encoding="utf-8")).get("version") or "")
76
+ except (OSError, ValueError, TypeError):
77
+ return None
78
+
79
+
80
+ @dataclass(frozen=True)
81
+ class VersionIssue:
82
+ code: str
83
+ message: str
84
+
85
+
86
+ def check_versions() -> list[VersionIssue]:
87
+ """Return version consistency issues across the repo-distributed pieces."""
88
+ issues: list[VersionIssue] = []
89
+ pkg = package_version()
90
+ ext = extension_version()
91
+ if not is_semver(pkg):
92
+ issues.append(VersionIssue("package-not-semver", f"package version is not semver: {pkg}"))
93
+ if ext is None:
94
+ issues.append(VersionIssue("extension-missing", "chrome-extension/manifest.json was not found"))
95
+ elif not is_semver(ext):
96
+ issues.append(VersionIssue("extension-not-semver", f"extension version is not semver: {ext}"))
97
+ elif ext != pkg:
98
+ issues.append(
99
+ VersionIssue(
100
+ "extension-version-mismatch",
101
+ f"extension version {ext} does not match package version {pkg}",
102
+ )
103
+ )
104
+ return issues
105
+
106
+
107
+ def version_info() -> dict:
108
+ issues = check_versions()
109
+ return {
110
+ "schema_version": 1,
111
+ "package": PACKAGE_NAME,
112
+ "version": package_version(),
113
+ "extension_version": extension_version(),
114
+ "extension_protocol_version": EXTENSION_PROTOCOL_VERSION,
115
+ "ok": not issues,
116
+ "issues": [issue.__dict__ for issue in issues],
117
+ }
@@ -0,0 +1,12 @@
1
+ Metadata-Version: 2.4
2
+ Name: browserwright
3
+ Version: 0.6.2
4
+ Summary: Browserwright — let AI/code agents drive a real or isolated browser and author userscripts. Single package: the agent-facing REPL/site-skills/memory layer plus the bundled browser-resolving daemon (CDP proxy + extension/cloud backends).
5
+ Requires-Python: >=3.11
6
+ Requires-Dist: cdp-use==1.4.5
7
+ Requires-Dist: websockets==15.0.1
8
+ Requires-Dist: pillow==12.2.0
9
+ Requires-Dist: httpx>=0.27
10
+ Requires-Dist: playwright>=1.60.0
11
+ Provides-Extra: ux
12
+ Requires-Dist: rich>=13; extra == "ux"
@@ -0,0 +1,98 @@
1
+ browserwright/__init__.py,sha256=oUKRGyLe9ZLBbnVe-RfAGWuazzdpHWFO59-I2FEVO6U,1162
2
+ browserwright/__main__.py,sha256=DXEbyvy3Xl4_kkaK2lP0zqpF7fsVEQkab54DtRUs7Qc,135
3
+ browserwright/api.py,sha256=hRHBPjA8KBfx1VceCFn0goZ0ffyAZiMBPImffYB8aLM,2541
4
+ browserwright/cdp.py,sha256=jaTP255JE0CvokT3VGOpQgdJbemgiWMdGuNmSUlCgQc,11756
5
+ browserwright/cli.py,sha256=RA_PMrqGA1qBc-Px5HGqVMQaei48dvRs5-dWLc2dMyg,26558
6
+ browserwright/discovery.py,sha256=eeHq9EkCEhKEwOlNyWsdMPakL2rtptsY3UiZqa6f09Q,7228
7
+ browserwright/errors.py,sha256=H0jRplz-WwKH4MnBpCb3K85SnR4x_kRpcAYtIvzX7RU,7189
8
+ browserwright/health.py,sha256=c3vq9BD5jLvJsau2Y3xpqnq03AhzXqE6CJS15Hf9oW8,6875
9
+ browserwright/install.py,sha256=PS2gbyeoJa6o4Uhq00qIfVRXzcgM2SBe_7YlQjmkHfg,27811
10
+ browserwright/mode_b_client.py,sha256=dm5sVBYASWXCfZ5PfbX4B_VdFDAqjXHAr3IaNBdGEgQ,25468
11
+ browserwright/multitask.py,sha256=gUbylS27D01LdpQOStz2i3avax0v1OmuKttBFCFuorA,5277
12
+ browserwright/output_schema.py,sha256=vvDEu5bDr14rroStHJD65LfVEj0VJmj9PDzv78ISZGg,3907
13
+ browserwright/release_install.py,sha256=PSsFd-9YjoHMYoGxVnxzbiMzAgmMuc6xsyU__feeP_M,15036
14
+ browserwright/session.py,sha256=zxYCnc85URaINdJiN0pLwUMGKRvCoB8AxNhbwSJ2_qo,9667
15
+ browserwright/session_create.py,sha256=TLGuxsHWl_7jw04NPzHY4a0-rmWQEmNn8sJKJVuoKD8,10563
16
+ browserwright/session_ctx.py,sha256=YyMe4BMtHmIAA-Nwe0vQsGpY28zthO1TebdRJxsXvE0,727
17
+ browserwright/session_registry.py,sha256=4ky6WKRSJqZK2QSm3VVIxNm2mgTTQC9x7Vhzmm_P_3I,4759
18
+ browserwright/session_runtime.py,sha256=CvzXt76ciOrDAOSjcnktqC51KEMgx-vN97zFGZeFUXg,4974
19
+ browserwright/skill_doc.py,sha256=ERNH-GvvXmLu1OaLWJlx8wF1z4I9K9lJ74vkEVFAl3c,4904
20
+ browserwright/skill_runtime.md,sha256=Xvwk3HQw-YVHM7rf2nU-2ZzdlrBcD9HFK_1jsfZp8VI,10866
21
+ browserwright/subscriptions.py,sha256=9w9-IB8V0x95qkxKPmk-iXYePiwf7MSQ3Rv7Y0Vo9H4,7401
22
+ browserwright/task_runner.py,sha256=txGbjER4eD48pzWraR9eD0omrK_TM0Ga3AF3aVJ6RRg,4937
23
+ browserwright/version.py,sha256=_azV_l-7-ulx2tYaccKl_IzFQeRlA-TDxGxwNDL2Nqc,3413
24
+ browserwright/_executor/__init__.py,sha256=xZHq25E9002XkAmV_6Igqcyg0CyrtttSfhZZtoYHP1Q,2076
25
+ browserwright/_executor/__main__.py,sha256=HlE5L4o9hDcuFMD8TgUmW4y3CeiJTjMtLsGU_B8Xvi0,194
26
+ browserwright/_executor/client.py,sha256=52fevYji9nF4A5ImfMVJOu8IWubjewW9G98crLI6VAc,5386
27
+ browserwright/_executor/process.py,sha256=v9s3AbBxTLFMKvSuy3rAnvEgqOGwdAB89Ksya-Z3ni4,30976
28
+ browserwright/_executor/protocol.py,sha256=pPsRWWsphwe_oZ-FsAYwAbTji5c6nvjlG1-ClTjBYy0,6137
29
+ browserwright/daemon/__init__.py,sha256=0zadZV1n8gQJE7NPiR0fc_5KZcN88OlS1uq2HLVoXRg,409
30
+ browserwright/daemon/_ipc.py,sha256=-eanI5nSaX6lxG0aHSYd3kpDKLbdHMS4BW5V3GLvxV8,16436
31
+ browserwright/daemon/active_tab.py,sha256=MGMcOuIR518USMRYAtbxgYARPYRKYdQ9tqDUbKxkVxo,6778
32
+ browserwright/daemon/auth.py,sha256=wiO3iJb_D-HM5EFzsZB1_8QKekDCozaAyowdZMM_SDI,14613
33
+ browserwright/daemon/cli.py,sha256=vnXJZggi2Tir40vKXvGAEn4DMguLyp-k8kwaQMnXuSo,57163
34
+ browserwright/daemon/config.py,sha256=R-_j93dHW1BzZIhnXlQTfEzmPQl7NKx23f0IlZOL4ME,17256
35
+ browserwright/daemon/doctor.py,sha256=GYOCZWDmr4Ib4MrzEe0F_oR7kbpWIltmf_71Tjgxfds,6828
36
+ browserwright/daemon/errors.py,sha256=pVX6kbQ8u-Q5YRep1YESJ9RYuglari8q4jMDsFkhCHk,1055
37
+ browserwright/daemon/launch_chrome.py,sha256=AYzzVra9y4o6t1bTLmGwcCNlHhMZEQ3NRALtRvJQ04k,15277
38
+ browserwright/daemon/observability.py,sha256=lSwnTNFe3HlDnU8gCz8yBV_P4S0UEA7Ob2nAUkF_E8o,6489
39
+ browserwright/daemon/platforms.py,sha256=DtgmXaqLncs4gYMVgjx2JrPG55uv8targG7JjOZb6yg,9905
40
+ browserwright/daemon/resolver.py,sha256=MOF0iPMKHMKNoGGjJQsa7s36ONj07dZx_raK1f0L8ew,2961
41
+ browserwright/daemon/userscripts.py,sha256=HgZdWgeWzoAOUXVMnxcvSzUEtuuNDqGBd0nC_SwuDaQ,4548
42
+ browserwright/daemon/backends/__init__.py,sha256=KCHH5NA12YelVuGhR7jmExJk2nZk9NpIZqMRYwIRqAc,1896
43
+ browserwright/daemon/backends/base.py,sha256=ZSmBHLQnBZmS2sW_t-6p58FCYV9CqwJF1kV-QU0y4gg,4496
44
+ browserwright/daemon/backends/cloud.py,sha256=ZdhqrydpKf2PF_y0M8cJuEFL9AHsK9WsOV5BLUYgO4Q,9392
45
+ browserwright/daemon/backends/env.py,sha256=Smy6mRHqgqh4oP9M6aw8pebMBZSUNrUZT4silGgzzrU,4542
46
+ browserwright/daemon/backends/extension.py,sha256=PRIcnE3-dKWYsRSDiTEYanAl7SCSVn7gMP38x22i9AU,7434
47
+ browserwright/daemon/backends/rdp.py,sha256=jRDbpiN_tJg7hlMx--VTg1mRufv-0j6_yoDT6FdyYTI,8617
48
+ browserwright/daemon/server/__init__.py,sha256=OM34irjjQZIwRQStvvI2gXbhjfqIelMKV7BgxU9Qzrc,239
49
+ browserwright/daemon/server/daemon.py,sha256=xT4F-TwiSdItWQ2oFQI2bWt0QXQwGeYJ6iHUaiJGiEc,10908
50
+ browserwright/daemon/server/executor_registry.py,sha256=uHudFbkgZX5ngOf8u70RRs5NwLvWpVNsEqMxtXE5c1k,18798
51
+ browserwright/daemon/server/extension_upstream.py,sha256=xfmxq_fKeiSn39N_BMRANyPlX_yNI7INUe-MWK8PUHk,30105
52
+ browserwright/daemon/server/facade.py,sha256=t45jRnCbx3PmOKyya-aMHB_290Prmsf-I5toQDGPSNI,16863
53
+ browserwright/daemon/server/facade_extension.py,sha256=jmN_uWeXjBTdz84mdej_DQIyHThRyR4aLfcU6fHoOz8,49636
54
+ browserwright/daemon/server/listener.py,sha256=Sxxt1atMaFjNfhWE1V3Y8eVVL0HW--9P5PTqHapKu-M,48437
55
+ browserwright/daemon/server/proxy.py,sha256=8TMKZAJ5ZVgF1oxpbjBUG5gu7SIpnRxhwHdnJ_wkFJo,100335
56
+ browserwright/daemon/server/relay.py,sha256=gl4Qk9nGINRRbU7zHKO2Fg8CnQVzrKD03OPXavuGjdc,34811
57
+ browserwright/daemon/server/state.py,sha256=TentQrrJQE90RTESnQV9NsE4GbjZ91l5bB3XlRbs3ZU,17709
58
+ browserwright/daemon/server/upstream.py,sha256=NiNqdOcEAkNv1wUGphYZ-6QLCDA0TKQO86VzTDewaWo,10622
59
+ browserwright/memory/__init__.py,sha256=V86r9DOQfDrm4BfhcbcYzU3_YmSTGjZF8LKcUtepTCU,371
60
+ browserwright/memory/_md.py,sha256=_DXnnz9nIMiSPRtgrCF-8JwRyROAt3vCeNWVlgU2lNY,3951
61
+ browserwright/memory/_yaml.py,sha256=gcVWbTrNGOLWkoxKLTKYmM12SnkAMyTMna2UsSo7pyA,6616
62
+ browserwright/memory/global_mem.py,sha256=GrKnttqRjDcd14djuxMExiDSZaPxqXjR_U-Aj-HHp5A,6635
63
+ browserwright/memory/repl_mem.py,sha256=ARzwegKV1zOIiWzHlRNI6EFvUwkfWsWSPdBHoxft1H0,585
64
+ browserwright/memory/session_decisions.py,sha256=VMvQ8Rch5jbcyO6H-Gd0W_JSiIdkhvasDXrQjo8HB9I,1576
65
+ browserwright/memory/site_mem.py,sha256=TMrRocXLox_fTGDTD9GJJoMSA12YPzqpSfeiYO1-gQM,12699
66
+ browserwright/primitives/__init__.py,sha256=2wlOvEm22ICrAkOlfTEPK9-lL2J6Is1gf9E7qiHyQnk,1683
67
+ browserwright/primitives/discovery_api.py,sha256=epcopCt-xzgU1Egc-vNQFuPUudwuPr0BpOt7LSEQIso,3130
68
+ browserwright/primitives/http.py,sha256=Tsac4kRitNH0ti1c9R5WJ0Ecn3MG7SB_Vyof77DTTcE,1527
69
+ browserwright/primitives/inspect.py,sha256=N-lr08kKbNrSICvOInL_tkSBQbbRemYXi8IpE3OIiO8,35499
70
+ browserwright/primitives/interact.py,sha256=ICByaQjmdiU2wUbVAIRcnaaeV4vNo7ych3FqB8H2Vy4,20737
71
+ browserwright/primitives/page.py,sha256=_Yb0rbHTiUC31VLZY-xb7AiZvGe9IxLuzMJOWpS-iXE,22970
72
+ browserwright/primitives/site.py,sha256=u1vbNvjMMJ_bMn-az5LVLYk-ZZEms7N9382zGhT68Pc,5591
73
+ browserwright/repl/__init__.py,sha256=qLAe_c8NaafSnJrGeWtbumndE-2DBZZof0b6MHftKYY,253
74
+ browserwright/repl/_namespace.py,sha256=Lb7_YeEKbOFKX8D-OnLQWFbT_Qjko1B9D-67yvXfNpM,4686
75
+ browserwright/repl/_smart_goto.py,sha256=1_3BCQfrbkrEaMraEAnO1xtOVOlH8yRXNqb9_boZFAY,7408
76
+ browserwright/repl/inline.py,sha256=jIfVhedhfgAOzq3dYx7Bzxn9wGYmYYzSuT7XGtS0f8I,7696
77
+ browserwright/repl/playwright_handle.py,sha256=rGPrjEewVBVrlA_Oias2u8a6kCexQIEddktnle4KHkc,19432
78
+ browserwright/repl/snapshot.py,sha256=htfFDRXDculHRuuDWmNo0w-OUxM_FgetgyNRaByaXq4,6427
79
+ browserwright/site_skills_starter/github.com/SKILL.md,sha256=PdJqz495ICK-7MUoYhekoxTOHpGAcbA4iHN1PHr2czw,399
80
+ browserwright/site_skills_starter/github.com/memory.md,sha256=Y--AwVObjwcZNh05o5WJ8Uk7JbHUf8ib6s2zUM29dkA,891
81
+ browserwright/site_skills_starter/github.com/tasks/list_issues.py,sha256=P4wdxT7Bc0MgVJhr5ocyvvb6q1PBZYzoujcN-iLmgO8,2030
82
+ browserwright/site_skills_starter/google.com/SKILL.md,sha256=XpNs9QCMPE8AGYd04Cr43PZozTHHEC2qLnD8lCg4TyY,545
83
+ browserwright/site_skills_starter/google.com/memory.md,sha256=0N4jLbniLeJptwHYBDVadmUOoOnDpw-ZP0zjO4XaJtY,767
84
+ browserwright/site_skills_starter/google.com/tasks/search.py,sha256=i9poL7T48L_gwsjN7zqB5loaPEVQ6t5Gm21UrEKYtPA,1693
85
+ browserwright/site_skills_starter/producthunt.com/SKILL.md,sha256=5bsILBicMQH0QBMgmqE5VC1V7SfVEDxhMY8xbsQw-7Y,145
86
+ browserwright/site_skills_starter/producthunt.com/memory.md,sha256=zqjrqXqHVSOY76q34v9siC6jpU-dwExdHtFzJk2CyJg,743
87
+ browserwright/site_skills_starter/producthunt.com/tasks/today.py,sha256=UtXy6lFruRqt6Jb1-4jf-UgKZBTNNs8WcnuD_T4L4bk,2205
88
+ browserwright/site_skills_starter/wikipedia.org/SKILL.md,sha256=GVK-UKOsit_L7AV5qQnAlX1Xf7exm0I3rA_U1zLp6Po,152
89
+ browserwright/site_skills_starter/wikipedia.org/memory.md,sha256=zwGYvNv66ynOd5o-qZeNxUUSFd3lNsHmAv8ApvoueSU,595
90
+ browserwright/site_skills_starter/wikipedia.org/tasks/lookup.py,sha256=1CKn_FOpHlPQ37WwZPzB9XO-2n3z3EnPmVS2GmI75mk,1957
91
+ browserwright/site_skills_starter/ycombinator.com/SKILL.md,sha256=wdalRvAnOvhUf0eIS_xMHGV8bZ-8bzuJciAoqM7nyQw,202
92
+ browserwright/site_skills_starter/ycombinator.com/memory.md,sha256=6c-RHUpeRsZJMGazmQ85BZ6Xa2nxDxyWkF3rF15c8Q8,661
93
+ browserwright/site_skills_starter/ycombinator.com/tasks/front_page.py,sha256=_X2woeRtJXzH6F1nioXoXkCAHrfVorsgDzMZul2jDXs,2028
94
+ browserwright-0.6.2.dist-info/METADATA,sha256=6kJfi7Nw9UeMu3gTlRju5-v8Occ38Agw7257IUWv-q8,542
95
+ browserwright-0.6.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
96
+ browserwright-0.6.2.dist-info/entry_points.txt,sha256=GkuSfAYHR3kHxynWrj0hVfBJTNcX5SupaL4ASbGxKjE,110
97
+ browserwright-0.6.2.dist-info/top_level.txt,sha256=sthgWAl7kNKZNn7-jAleFuRNpsc1EiDnIa-MAGKTUXI,14
98
+ browserwright-0.6.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ browserwright = browserwright.cli:main
3
+ browserwright-daemon = browserwright.daemon.cli:main
@@ -0,0 +1 @@
1
+ browserwright