cursorflow 2.1.1__py3-none-any.whl → 2.1.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.
cursorflow/__init__.py CHANGED
@@ -56,7 +56,7 @@ def _get_version():
56
56
  pass
57
57
 
58
58
  # Fallback version - should match pyproject.toml
59
- return "2.1.1"
59
+ return "2.1.3"
60
60
 
61
61
  __version__ = _get_version()
62
62
  __author__ = "GeekWarrior Development"
cursorflow/cli.py CHANGED
@@ -16,11 +16,12 @@ from rich.table import Table
16
16
  from rich.progress import Progress, SpinnerColumn, TextColumn
17
17
 
18
18
  from .core.agent import TestAgent
19
+ from . import __version__
19
20
 
20
21
  console = Console()
21
22
 
22
23
  @click.group()
23
- @click.version_option(version="1.0.0")
24
+ @click.version_option(version=__version__)
24
25
  def main():
25
26
  """Universal UI testing framework for any web technology"""
26
27
  pass
@@ -419,11 +419,21 @@ class BrowserController:
419
419
  """
420
420
  try:
421
421
  # Process options with defaults
422
- screenshot_options = options or {}
423
- full_page = screenshot_options.get("full_page", False)
424
- clip_config = screenshot_options.get("clip")
425
- mask_selectors = screenshot_options.get("mask", [])
426
- quality = screenshot_options.get("quality", 80)
422
+ raw_options = options or {}
423
+ full_page = raw_options.get("full_page", False)
424
+ clip_config = raw_options.get("clip")
425
+ mask_selectors = raw_options.get("mask", [])
426
+ quality = raw_options.get("quality", 80)
427
+
428
+ # Build actual screenshot options used (for metadata)
429
+ screenshot_options = {
430
+ "full_page": full_page,
431
+ "quality": quality
432
+ }
433
+ if clip_config:
434
+ screenshot_options["clip"] = clip_config
435
+ if mask_selectors:
436
+ screenshot_options["mask"] = mask_selectors
427
437
 
428
438
  timestamp = int(time.time())
429
439
  screenshot_filename = f".cursorflow/artifacts/screenshots/{name}_{timestamp}.png"
@@ -125,9 +125,9 @@ def create_config_template(project_path: Path, force: bool = False):
125
125
  # Get current version
126
126
  try:
127
127
  import cursorflow
128
- current_version = getattr(cursorflow, '__version__', '2.1.1')
128
+ current_version = getattr(cursorflow, '__version__', '2.1.3')
129
129
  except ImportError:
130
- current_version = '2.1.1'
130
+ current_version = '2.1.3'
131
131
 
132
132
  if config_path.exists():
133
133
  if not force:
@@ -302,9 +302,9 @@ def setup_update_checking(project_path: Path):
302
302
  # Create initial version tracking
303
303
  try:
304
304
  import cursorflow
305
- current_version = getattr(cursorflow, '__version__', '2.1.1')
305
+ current_version = getattr(cursorflow, '__version__', '2.1.3')
306
306
  except ImportError:
307
- current_version = '2.1.1'
307
+ current_version = '2.1.3'
308
308
 
309
309
  version_info = {
310
310
  "installed_version": current_version,
@@ -34,7 +34,7 @@ class LocalFileLogSource:
34
34
  self.log_queue = queue.Queue()
35
35
  self.tail_processes = {}
36
36
  self.monitoring = False
37
- self.connect = True # Attribute expected by other components
37
+ # Note: connect() method implemented below for compatibility
38
38
 
39
39
  import logging
40
40
  self.logger = logging.getLogger(__name__)
@@ -158,6 +158,10 @@ class LocalFileLogSource:
158
158
 
159
159
  return logs
160
160
 
161
+ async def connect(self):
162
+ """Connect to log sources - compatibility method for log_collector"""
163
+ return await self.start_monitoring()
164
+
161
165
  def get_recent_logs(self, seconds: int = 10) -> List[Dict]:
162
166
  """Get logs from the last N seconds"""
163
167
  from datetime import timedelta
@@ -43,7 +43,7 @@ class SSHRemoteLogSource:
43
43
  self.ssh_client = None
44
44
  self.monitoring_threads = []
45
45
  self.monitoring = False
46
- self.connect = True # Attribute expected by other components
46
+ # Note: connect() method implemented below for compatibility
47
47
 
48
48
  self.logger = logging.getLogger(__name__)
49
49
 
@@ -161,6 +161,10 @@ class SSHRemoteLogSource:
161
161
 
162
162
  return logs
163
163
 
164
+ async def connect(self):
165
+ """Connect to SSH log sources - compatibility method for log_collector"""
166
+ return await self.start_monitoring()
167
+
164
168
  def get_recent_logs(self, seconds: int = 10) -> List[Dict]:
165
169
  """Get logs from the last N seconds without stopping monitoring"""
166
170
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cursorflow
3
- Version: 2.1.1
3
+ Version: 2.1.3
4
4
  Summary: 🔥 Complete page intelligence for AI-driven development with Hot Reload Intelligence - captures DOM, network, console, performance, HMR events, and comprehensive page analysis
5
5
  Author-email: GeekWarrior Development <rbush@cooltheory.com>
6
6
  License-Expression: MIT
@@ -1,11 +1,11 @@
1
- cursorflow/__init__.py,sha256=4i8WdpsTOfyiNOpUqVJEnUVtYBpfJ2xusnQahWAVnSc,2763
1
+ cursorflow/__init__.py,sha256=R0EASl-kqgr62b-7tqb7TBpEvWMWtBQs5VqOBtLxLF4,2763
2
2
  cursorflow/auto_updater.py,sha256=oQ12TIMZ6Cm3HF-x9iRWFtvOLkRh-JWPqitS69-4roE,7851
3
- cursorflow/cli.py,sha256=ffsBKsQc95NfJOVuIn4-Arnx8LZU9fvzAHYy4_f_aSU,27250
4
- cursorflow/install_cursorflow_rules.py,sha256=gBqWPgyMplyBlVPXKR5Tf-haDSDeIkZeGG0PHkxblMo,11792
3
+ cursorflow/cli.py,sha256=ca36aTHFLYpiaeQYoj3TB4o39CEfj3WWaePze8yNvdg,27280
4
+ cursorflow/install_cursorflow_rules.py,sha256=YBLbpyZT-ZLgq_VXhlu_ilruyttcQybaHPPfHYz7LnQ,11792
5
5
  cursorflow/updater.py,sha256=rAST7STjw-SgKxn_jsQJWOoyEMia-MQVxpKMwzPRnOA,19573
6
6
  cursorflow/core/agent.py,sha256=f3lecgEzDRDdGTVccAtorpLGfNJJ49bbsQAmgr0vNGg,10136
7
7
  cursorflow/core/auth_handler.py,sha256=oRafO6ZdxoHryBIvHsrNV8TECed4GXpJsdEiH0KdPPk,17149
8
- cursorflow/core/browser_controller.py,sha256=8TfhkBavWbwhTEGUmLdvA4UvIdLI64qct1HpnSBjBFo,131364
8
+ cursorflow/core/browser_controller.py,sha256=KZXSrXInju09Q--D_ULej4_hc5s7qv-7ODxW4WS0nHw,131708
9
9
  cursorflow/core/browser_engine.py,sha256=RpGtMOjyE7WW2BiR1cKcNnXNuiUbKt5svFgn1k3zozo,14415
10
10
  cursorflow/core/css_iterator.py,sha256=whLCIwbHZEWaH1HCbmqhNX5zrh_fL-r3hsxKjYsukcE,16478
11
11
  cursorflow/core/cursor_integration.py,sha256=MAeHjXYeqzaXnhskqkTDB-n5ixIHqapGe93X0lLKhws,67501
@@ -21,14 +21,14 @@ cursorflow/core/mockup_comparator.py,sha256=VLfEEaTgbcY0oTb-bhBD2uTbXGjbnOV7LXNV
21
21
  cursorflow/core/persistent_session.py,sha256=FsEHj4wKkycmdp6PFRHv3g333Y74yqra0x_qhUTQpik,36075
22
22
  cursorflow/core/report_generator.py,sha256=-vosfyrnfVyWDbAIMlMurl90xOXqBae8d6aLd9sEqiY,10113
23
23
  cursorflow/core/trace_manager.py,sha256=Jj9ultZrL1atiZXfcRVI6ynCnnfqZM-X0_taxt-llJ0,7189
24
- cursorflow/log_sources/local_file.py,sha256=Hn3hDQjAqgNBQN8b5AbC6IQAzgY_ekLgePwDuq9wBlA,7101
25
- cursorflow/log_sources/ssh_remote.py,sha256=zSnX8mpa5G86UDWEm3_FqYwo1PjBW67C1LPkJ5Ta_ho,7482
24
+ cursorflow/log_sources/local_file.py,sha256=5Aa1qFe-GABydXr3Hskta6QCMjRrBOfrGGD3OJ9JBBw,7257
25
+ cursorflow/log_sources/ssh_remote.py,sha256=xLLxm5B95kUcLqMC7-oZUA66e1rU5LLeeBiR6Mw5syc,7642
26
26
  cursorflow/rules/__init__.py,sha256=gPcA-IkhXj03sl7cvZV0wwo7CtEkcyuKs4y0F5oQbqE,458
27
27
  cursorflow/rules/cursorflow-installation.mdc,sha256=PZN4hHpy2_g3EzD8BxZYhXF9A6YCvtMGaD3uOA7UVSs,9511
28
28
  cursorflow/rules/cursorflow-usage.mdc,sha256=SAsJRmml8W1zE_jArZnRtygO9RmggjEzxGA6hxBJ-H4,18924
29
- cursorflow-2.1.1.dist-info/licenses/LICENSE,sha256=e4QbjAsj3bW-xgQOvQelr8sGLYDoqc48k6cKgCr_pBU,1080
30
- cursorflow-2.1.1.dist-info/METADATA,sha256=qu-cojQCxwFOlLR5g8QhlFevKeOmxWlteLbZGGCSWns,12300
31
- cursorflow-2.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
32
- cursorflow-2.1.1.dist-info/entry_points.txt,sha256=-Ed_n4Uff7wClEtWS-Py6xmQabecB9f0QAOjX0w7ljA,51
33
- cursorflow-2.1.1.dist-info/top_level.txt,sha256=t1UZwRyZP4u-ng2CEcNHmk_ZT4ibQxoihB2IjTF7ovc,11
34
- cursorflow-2.1.1.dist-info/RECORD,,
29
+ cursorflow-2.1.3.dist-info/licenses/LICENSE,sha256=e4QbjAsj3bW-xgQOvQelr8sGLYDoqc48k6cKgCr_pBU,1080
30
+ cursorflow-2.1.3.dist-info/METADATA,sha256=L-0-ZDt4lzJ9irtTBHAg1dPjKunBtew1GUy6ARzkIOc,12300
31
+ cursorflow-2.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
32
+ cursorflow-2.1.3.dist-info/entry_points.txt,sha256=-Ed_n4Uff7wClEtWS-Py6xmQabecB9f0QAOjX0w7ljA,51
33
+ cursorflow-2.1.3.dist-info/top_level.txt,sha256=t1UZwRyZP4u-ng2CEcNHmk_ZT4ibQxoihB2IjTF7ovc,11
34
+ cursorflow-2.1.3.dist-info/RECORD,,